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