Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UP03_Vyvod_v_okno.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
550.4 Кб
Скачать

3.4.2. Выбор шрифта в контекст отображения

Пусть в структуре типа LOGFONT заполнены нужные поля и ее адрес передан функции CreateFontIndirect. Тогда эта функция вернет дескриптор созданного шрифта hfont.

Для выбора шрифта hfont в контекст отображения hdc вызывают функцию SelectObject:

SelectObject(hdc, hfont);

Как только в шрифте hfont отпадет необходимость, его следует удалить при помощи макрокоманды DeleteObject, предварительно выбрав в контекст отображения предыдущий шрифт.

3.4.3. Функции вывода текста

Функция 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 начинает вывод текста с текущей позиции, игнорируя параметры, определяющие расположение текста в окне.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]