Функция GetTabbedTextExtent


Функция GetTabbedTextExtent вычисляет ширину и высоту строки символов. Если строка содержит одно или несколько символов табуляции, ширина строки базируется на заданном шаге табуляции. Функция GetTabbedTextExtent использует текущий выбранный шрифт, чтобы вычислить размеры строки

Синтаксис

DWORD GetTabbedTextExtent(
  HDC hDC,                        // дескриптор DC
  LPCTSTR lpString,               // строка символов
  int nCount,                     // число символов
  int nTabPositions,              // количество позиций табуляции
  CONST LPINT lpnTabStopPositions // массив позиций табуляции
);
Параметры
hDC
[in] Дескриптор контекста устройства.
lpString
[in] Указатель на строку символов.
nCount

[in] Определяет длину строки текста. Длина строки в pgi. Для функции ANSI это - итоговое число байтов (BYTE), а для функции Unicode это - итоговое число слов (WORD)

Обратите внимание! на то, что для функции ANSI, буквы в кодовых страницах SBCS (набора однобайтовых символов) берут  по одному байту каждый, в то время как большинство букв в кодовых страницах DBCS (набора двухбайтовых символов)   берут два байта; для функции Unicode наиболее правильное определение символов Unicode (это в Основной Многоязычной плоскости - Basic Multilingual Plane(BMP)) - одно слово (WORD), в то время как в заменителях Unicode - это два слова  (WORD).

Windows 95/98/Me: Это значение не может быть больше чем 8192.

nTabPositions
[in] Устанавливает, что число шагов табуляции расположенных в массиве, указанном параметром lpnTabStopPositions .
lpnTabStopPositions
[in] Указатель на массив, содержащий позиции табуляции, в единицах измерения устройства (пикселях). Шаги табуляции должны сортироваться в увеличивающемся порядке; наименьшее x-значение должно быть первым элементом в массиве.

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

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

Если функция завершается ошибкой, возвращаемое значение - 0. Функция GetTabbedTextExtent завершится ошибкой, если hDC недопустим и если nTabPositions - меньше чем 0.

Windows NT/2000/XP: Чтобы получит дополнительную информацию об ошибке, вызовите функцию GetLastError.

Замечания

Текущая область отсечения  не воздействует на ширину и высоту, возвращенную функцией GetTabbedTextExtent.

Поскольку некоторые устройства не помещают символы в обычных массивах ячеек (то есть они выносные элементы символов), сумма протяженностей символов в строке  могут быть не равны общей длине строки.

Если параметр nTabPositions  равен нулю, а параметр lpnTabStopPositions  равен значению ПУСТО (NULL), позиции табуляции дополняются до восьмикратной средней ширины символа.

Если nTabPositions равен 1, шаги табуляции отделяются расстоянием, заданным первым значением в массиве, на который указывает параметр lpnTabStopPositions .

 Windows 95/98/Me: GetTabbedTextExtentW поддерживается подпрограммой Microsoft Layer for Unicode. Чтобы использовать ее, Вы должны добавить некоторые файлы к вашему приложению, как изложено в требованиях этой подпрограммы для систем Windows 95/98/Me.

Смотри также

Обзор шрифты и текст, Функции, используемые шрифтами и текстом, GetTextExtentPoint32, HIWORD, LOWORD, TabbedTextOut

Размещение и совместимость GetTabbedTextExtent

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

User32.lib

Заголовочный файл

 

- объявлено в

Winuser.h

- включено в

Windows.h

Unicode

Реализуется как версии Unicode и  ANSI в Windows NT /2000/XP.

Поддерживается также подпрограммой Microsoft Layer for Unicode

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz