Поделиться через


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

Функция SetTextAlign задает флаги выравнивания текста для указанного контекста устройства.

Синтаксис

UINT SetTextAlign(
  [in] HDC  hdc,
  [in] UINT align
);

Параметры

[in] hdc

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

[in] align

Выравнивание текста с использованием маски значений из следующего списка. Из тех, которые влияют на горизонтальное и вертикальное выравнивание, можно выбрать только один флаг. Кроме того, можно выбрать только один из двух флагов, изменяющих текущую позицию.

Значение Значение
TA_BASELINE
Опорная точка будет находиться в базовой строке текста.
TA_BOTTOM
Точка отсчета будет находиться на нижнем краю ограничивающего прямоугольника.
TA_TOP
Точка отсчета будет находиться на верхнем крае ограничивающего прямоугольника.
TA_CENTER
Точка отсчета будет выровнена по горизонтали по центру ограничивающего прямоугольника.
TA_LEFT
Точка отсчета будет находиться на левом краю ограничивающего прямоугольника.
TA_RIGHT
Точка отсчета будет находиться по правому краю ограничивающего прямоугольника.
TA_NOUPDATECP
Текущая позиция не обновляется после каждого вызова вывода текста. Точка отсчета передается в функцию вывода текста.
TA_RTLREADING
Выпуск Windows для ближневосточных языков: Текст расположен в порядке чтения справа налево, в отличие от порядка чтения слева направо по умолчанию. Это применимо, только если в контексте устройства выбран шрифт иврит или арабский.
TA_UPDATECP
Текущая позиция обновляется после каждого вызова вывода текста. Текущая позиция используется в качестве точки отсчета.
 

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

Значение Значение
VTA_BASELINE
Опорная точка будет находиться в базовой строке текста.
VTA_CENTER
Точка отсчета будет выровнена по вертикали по центру ограничивающего прямоугольника.
 

Значения по умолчанию: TA_LEFT, TA_TOP и TA_NOUPDATECP.

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

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

Если функция завершается сбоем, возвращаемое значение будет GDI_ERROR.

Комментарии

Функции TextOut и ExtTextOut используют флаги выравнивания текста для размещения строки текста на дисплее или другом устройстве. Флаги указывают связь между точкой отсчета и прямоугольником, ограничивающим текст. Точкой отсчета является текущая позиция или точка, передаваемая в функцию вывода текста.

Прямоугольник, ограничивающий текст, формируется символьными ячейками в текстовой строке.

Лучший способ получить текст по левому краю — использовать один из вариантов


SetTextAlign (hdc, GetTextAlign(hdc) & (~TA_CENTER))

или


SetTextAlign (hdc,TA_LEFT | <other flags>)

Для этой цели также можно использовать SetTextAlign (hdc, TA_LEFT), но при этом будут потеряны параметры вертикали или справа налево.

Примечание Не следует использовать SetTextAlign с TA_UPDATECP при использовании ScriptStringOut, так как выделенный текст отображается неправильно. Если необходимо использовать этот флаг, его можно отменить и сбросить по мере необходимости, чтобы избежать проблемы.
 

Примеры

Пример см. в разделе Настройка выравнивания текста.

Требования

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

См. также раздел

ExtTextOut

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

Общие сведения о шрифтах и тексте

GetTextAlign

ScriptStringOut

TextOut