Функция TextOut выводит символьную строку в указанной позиции, соблюдая выбранные атрибуты контекста отображения.
Функция TextOut объявлена следующим образом:
BOOL TextOut(HDC hdc, int nXStart, int nYStart,
LPCTSTR lpString, int cbString);
Параметры этой функции:
- nXStart задает логическую х-координату операции вывода.
- nYStart задает логическую у-координату операции вывода.
- lpString указывает на строку, которая будет выведена.
- cbString равен количеству символов в выводимой строке.
Функция TextOut заданную строку выводит внутри воображаемого прямоугольника, сформированного ячейками символов выводимой строки. Координаты nXStart и nYStart, в зависимости от режима выравнивания, определяют различные точки этого прямоугольника.
Функция SetTextAlign выбирает режим выравнивания текста в контекст отображения:
UINT SetTextAlign(HDC hdc, UINT fMode);
Параметр fMode задает режим выравнивания и определяется при помощи трех групп флагов. Символические имена флагов начинаются с префикса ТА_.
Первая группа флагов отвечает за выравнивание строки по горизонтали:
|
|
Флаг | Описание |
TA_LEFT | Выравнивать по левой границе. Координата nXStart определяет левую границу воображаемого прямоугольника. Этот режим выбран по умолчанию |
TA_CENTER | Выравнивать по центру. Координата nXStart определяет центр воображаемого прямоугольника |
TA_RIGHT | Выравнивать по правой границе. Координата nXStart определяет правую границу воображаемого прямоугольника |
Вторая группа флагов отвечает за выравнивание текста по вертикали:
Флаг | Описание |
ТА_ТОР | Выравнивать по верхней границе. Координата nYStart определяет верхнюю границу воображаемого прямоугольника. Этот режим выбран по умолчанию |
TA_BASELINE | Выравнивать по базовой линии выбранного шрифта |
TA_BOTTOM | Выравнивать по нижней границе |
Третья группа флагов относится к текущей позиции вывода:
Флаг | Описание |
TA_NOUPDATECP | Не изменять значения текущей позиции вывода текста (используется по умолчанию) |
TA_UPDATECP | После вывода вычислить новое значение текущей позиции |
Из каждой группы флагов используют только один, например:
SetTextAlign(hdc, TA_CENTER | TA_BASELINE | TA_UPDATECP);
Функция SetTextAlign возвращает старое значение режима выравнивания или, в случае ошибки, – GDI_ERROR.
Если задан режим выравнивания TA_UPDATECP, функция TextOut начинает вывод текста с текущей позиции, игнорируя параметры, определяющие расположение текста в окне.