Функция 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 |