Функция GetTabbedTextExtentA (winuser.h)

Функция GetTabbedTextExtent вычисляет ширину и высоту символьной строки. Если строка содержит один или несколько символов табуляции, ширина строки зависит от указанных значений табуляции. Функция GetTabbedTextExtent использует выбранный в данный момент шрифт для вычисления размеров строки.

Синтаксис

DWORD GetTabbedTextExtentA(
  [in] HDC       hdc,
  [in] LPCSTR    lpString,
  [in] int       chCount,
  [in] int       nTabPositions,
  [in] const INT *lpnTabStopPositions
);

Параметры

[in] hdc

Дескриптор контекста устройства.

[in] lpString

Указатель на символьную строку.

[in] chCount

Длина текстовой строки. Для функции ANSI это число BYTE, а для функции Юникод — число СЛОВ. Обратите внимание, что для функции ANSI символы на кодовых страницах SBCS занимают по одному байту, в то время как большинство символов на кодовых страницах DBCS занимают два байта. Для функции Юникода наиболее определенные в настоящее время символы Юникода (в базовой многоязыковой плоскости (BMP)) — это один WORD, а суррогаты Юникода — два WORD.

[in] nTabPositions

Количество позиций табуляции в массиве, на который указывает параметр lpnTabStopPositions .

[in] lpnTabStopPositions

Указатель на массив, содержащий позиции табуляции в единицах устройства. Позиции табуляции должны быть отсортированы в порядке увеличения; наименьшее значение x должно быть первым элементом в массиве.

Возвращаемое значение

Если функция выполняется успешно, возвращаемое значение представляет собой измерения строки в логических единицах. Высота — в слове высокого порядка, а ширина — в слове низкого порядка.

Если функция завершается сбоем, возвращаемое значение равно 0. GetTabbedTextExtent завершится ошибкой , если hDC недопустим, а nTabPositions меньше 0.

Комментарии

Текущая область обрезки не влияет на ширину и высоту, возвращаемые функцией GetTabbedTextExtent .

Так как некоторые устройства не помещают символы в обычные массивы ячеек (т. е. кернируют символы), сумма экстентов символов в строке может быть не равна экстенту строки.

Если параметр nTabPositions равен нулю, а параметр lpnTabStopPositions имеет значение NULL, вкладки расширяются до восьми раз средней ширины символов.

Если значение nTabPositions равно 1, то позиции табуляции разделяются расстоянием, заданным первым значением в массиве, на которое указывает lpnTabStopPositions .

Примечание

Заголовок winuser.h определяет GetTabbedTextExtent в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll

См. также раздел

Функции шрифта и текста

Общие сведения о шрифтах и тексте

GetTextExtentPoint32

TabbedTextOut