Функция GetTextExtentPoint32W (wingdi.h)
Функция GetTextExtentPoint32 вычисляет ширину и высоту указанной строки текста.
Синтаксис
BOOL GetTextExtentPoint32W(
[in] HDC hdc,
[in] LPCWSTR lpString,
[in] int c,
[out] LPSIZE psizl
);
Параметры
[in] hdc
Дескриптор контекста устройства.
[in] lpString
Указатель на буфер, указывающий текстовую строку. Строка не должна быть завершена null, так как параметр c указывает длину строки.
[in] c
Длина строки, на которую указывает lpString.
[out] psizl
Указатель на структуру SIZE, которая получает измерения строки в логических единицах.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение ненулевое.
Если функция завершается ошибкой, возвращаемое значение равно нулю.
Замечания
Функция GetTextExtentPoint32 использует выбранный шрифт для вычисления измерений строки. Ширина и высота в логических единицах вычисляются без учета каких-либо обрезок.
Так как некоторые устройства керн символов, сумма экстентов символов в строке может не совпадать с степенью строки.
Вычисляемая ширина строки учитывает интервалы между диаграммами, заданные функцией SetTextCharacterExtra и обоснованием, заданным SetTextJustification. Это верно как для отображения на экране, так и для печати. Однако если lpDx задан в ExtTextOut, GetTextExtentPoint32 не учитывает интервалы между диаграммами или обоснованием. Кроме того, для EMF результат печати всегда учитывает интервалы между диаграммами и обоснование.
При работе с текстом, отображаемым на экране, ширина вычисляемой строки учитывает интервалы между диаграммами, заданные функцией SetTextCharacterExtra и обоснованием, заданным SetTextJustification. Однако если lpDx задан в ExtTextOut, GetTextExtentPoint32 не учитывает интервалы между диаграммами или обоснованием. Однако при печати с помощью EMF:
- Результат печати игнорирует интервалы между диаграммами, хотя GetTextExtentPoint32 учитывает его.
- Результат печати учитывает обоснование, хотя GetTextExtentPoint32 игнорирует его.
GetTextExtentPoint32 не учитывает символы "\n" (новая строка) или "\r\n" (возврат каретки и новая строка) при вычислении высоты текстовой строки.
Примеры
Пример см. в разделе Рисование текста из разных шрифтов в одной строке.
Заметка
Заголовок wingdi.h определяет GetTextExtentPoint32 как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | wingdi.h (включая Windows.h) |
библиотеки |
Gdi32.lib |
DLL | Gdi32.dll |
См. также
шрифтов и текста