Функция GetTextExtentPoint вычисляет ширину и высоту заданной строки текста.
Обратите внимание! на то, что эта функция предусматривается только для совместимости с 16-битовыми версиями Windows. Приложения должны вызывать функцию GetTextExtentPoint32, которая обеспечивает более точные результаты. |
Сиснтаксис
BOOL GetTextExtentPoint( HDC hdc, // дескриптор DC LPCTSTR lpString, // текстовая строка int cbString, // число символов в строке LPSIZE lpSize // размер строки ); |
Обратите внимание! на то, что для функции ANSI, буквы в кодовых страницах SBCS (набора однобайтовых символов) берут по одному байту каждый, в то время как большинство букв в кодовых страницах DBCS (набора двухбайтовых символов) берут два байта; для функции Unicode наиболее правильное определение символов Unicode (это в Основной Многоязычной плоскости - Basic Multilingual Plane(BMP)) - одно слово (WORD), в то время как в заменителях Unicode - это два слова (WORD). |
Windows 95/98/Me: Это значение не может быть больше чем 8192.
Если функция завершается успешно, возвращаемое значение не нуль.
Если функция завершается с ошибкой, величина возвращаемого значения - ноль.
Windows NT/2000/XP: Чтобы получить дополнительную информацию об ошибке, вызовите функцию GetLastError.
Функция GetTextExtentPoint использует текущий выбранный шрифт, чтобы вычислить размеры строки. Ширина и высота, в логических единицах измерения, вычисляется без учета какого-либо отсечения. Эта функция также предполагает, что текст горизонтален, то есть что наклон является всегда 0. Это истинно и для горизонтальных и для вертикальных измерений текста. Даже если используя шрифт, у которого наклон определен отличный от нуля, эта функция не будет использовать угол при вычислении текстовой протяженности - приложение должно преобразовать это явно.
Поскольку некоторые устройства имеют выносные элементы, сумма протяженностей символов в строке может быть не равна общей длине строки.
Расчетная ширина строки принимает во внимание межсимвольный интервал, установленный функцией SetTextCharacterExtra.
Windows 95/98/Me: Для совместимости с Windows 3.1, функция GetTextExtentPoint прибавляет дополнительный пиксель при моделировании полужирных шрифтов . Однако, полужирный шрифт Tahoma не моделируется, так что он не имеет дополнительного пикселя. Чтобы исправить дополнительным пикселем моделирование полужирного шрифта , уменьшите длину каждой под строчки для передачи в GetTextExtentPoint на один пиксель и добавьте дополнительный пиксель для всей строки.
Windows 95/98/Me: Хотя GetTextExtentPointW существует в Windows 95/98/Me, она поддерживается подпрограммой Microsoft Layer for Unicode, чтобы давать более совместимое поведение во всех операционных системах Windows. Чтобы использовать ее, Вы должны добавить некоторые файлы к вашему приложению, как изложено в требованиях этой подпрограммы для систем Windows 95/98/Me.
Обзор шрифты и текст, Функции, используемые шрифтами и текстом, GetTextExtentPoint32, SetTextCharacterExtra, SIZE
Размещение и совместимость GetTextExtentPoint |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.5 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
Gdi32.lib |
Заголовочный файл |
|
- объявлено в |
Wingdi.h |
- включено в |
Windows.h |
Unicode |
Реализуется как версии Unicode и ANSI во всех платформах. Поддерживается также подпрограммой Microsoft Layer for Unicode |
Замечания по платформе |
Не имеется |