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