Функция GetTextExtentExPointI (wingdi.h)

Функция GetTextExtentExPointI извлекает количество символов в указанной строке, которая будет соответствовать заданному пространству и заполняет массив экстентом текста для каждого из этих символов. (Масштаб текста — это расстояние между началом пространства и символом, который будет помещаться в пространство.) Эта информация полезна для вычислений оболочки слов.

Syntax

BOOL GetTextExtentExPointI(
  [in]  HDC    hdc,
  [in]  LPWORD lpwszString,
  [in]  int    cwchString,
  [in]  int    nMaxExtent,
  [out] LPINT  lpnFit,
  [out] LPINT  lpnDx,
  [out] LPSIZE lpSize
);

Parameters

[in] hdc

Дескриптор контекста устройства.

[in] lpwszString

Указатель на массив глифовых индексов, для которых извлекаются экстенты.

[in] cwchString

Число глифов в массиве, на которое указывает параметр lpwszString .

[in] nMaxExtent

Максимальная допустимая ширина в логических единицах форматируемой строки.

[out] lpnFit

Указатель на целое число, которое получает количество символов, которое будет соответствовать пространству, заданному параметром nMaxExtent . Если параметр lpnFit имеет значение NULL, параметр nMaxExtent игнорируется.

[out] lpnDx

Указатель на массив целых чисел, получающих частичные глифы. Каждый элемент в массиве дает расстояние в логических единицах между началом массива индексов глифа и одним из глифов, которые помещаются в пространство, заданное параметром nMaxExtent . Хотя этот массив должен содержать по крайней мере столько элементов, сколько индексов глифов, указанных параметром cwchString , функция заполняет массив экстентами только для сколько глифовых индексов, как указано параметром lpnFit . Если lpnFit имеет значение NULL, функция не вычисляет частичную ширину строк.

[out] lpSize

Указатель на структуру SIZE , которая получает измерения массива индексов глифов в логических единицах. Это значение не может иметь значение NULL.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение.

Замечания

Если оба параметра lpnFit и lpnDx имеют значение NULL, вызов функции GetTextExtentExPointI эквивалентен вызову функции GetTextExtentPointI.

Когда эта функция возвращает экстент текста, предполагается, что текст является горизонтальным, то есть, что экранирование всегда равно 0. Это верно как для горизонтальных, так и вертикальных измерений текста. Даже если используется шрифт, указывающий ненулевое escapement, эта функция не использует угол при вычислении экстентов текста. Приложение должно явно преобразовать его. Однако если для графического режима задано значение GM_ADVANCED , а ориентация символа составляет 90 градусов от ориентации печати, значения, возвращаемые этой функцией, не соответствуют этому правилу. Если ориентация символа и ориентация печати соответствуют заданной строке, эта функция возвращает размеры строки в структуре SIZE как { cx: 116, cy : 18 }. Если ориентация символа и ориентация печати отличаются от 90 градусов для той же строки, эта функция возвращает измерения строки в структуре SIZE как { cx : 18, cy : 116 }.

Требования

Requirement Ценность
Минимальный поддерживаемый клиент Windows 2000 профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Windows
Заголовка wingdi.h (включая Windows.h)
Библиотека Gdi32.lib
DLL Gdi32.dll

См. также

Функции шрифта и текста

Обзор шрифтов и текста

GetTextExtentPoint

SIZE