Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций Часть II.doc
Скачиваний:
14
Добавлен:
20.11.2018
Размер:
1.48 Mб
Скачать

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

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

SelectObject(hdc, hfont) - выбор шрифта hfont в контекст отображения hdc

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

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

Функция TextOut выводит символьную строку в указанной позиции, соблюдая выбранные атрибуты контекста отображения.

Функция TextOut объявлена следующим образом:

BOOL TextOut( HOC hdc, int nXStart, int nYStart, LPCTSTR IpString, int cbString );

Параметры этой функции:

1. nXStart задает логическую х-координату операции вывода.

2. nYStart задает логическую у-координату операции вывода.

3. IpString указывает на строку, которая будет выведена.

4. cbString равен количеству символов в выводимой строке.

Функция TextOut заданную строку выводит внутри воображаемого прямоугольника, сформированного ячейками символов выводимой стро­ки. Координаты nXStart и nYStart, в зависимости от режима выравнива­ния, определяют различные точки этого прямоугольника.

UINT SetTextAlign( HDC hdc, UINT (Mode) - выбирает режим выравнивания

Параметр fMode задает режим выравнивания и определяется при по­мощи трех групп флагов. Символические имена флагов начинаются

с префикса ТА_.

Первая группа флагов отвечает за выравнивание строки по горизонтали:

Флаг

Описание

TA_LEFT

Выравнивать по левой границе. Координата nXStart определяет левую границу воображаемого прямо­угольника. Этот режим выбран по умолчанию

TA_CENTER

Выравнивать по центру. Координата nXStart опреде­ляет центр воображаемого прямоугольника

TA_RIGHT

Выравнивать по правой границе. Координата nXStart определяет правую границу воображаемого прямо­угольника

Вторая группа флагов отвечает за выравнивание текста по вертикали

Флаг

Описание

ТА ТОР

Выравнивать по верхней границе. Координата nYStart определяет верхнюю границу воображаемо­го прямоугольника. Этот режим выбран по умол­чанию

TA_BASELINE

Выравнивать по базовой линии выбранного шрифта

ТА BOTTOM

Выравнивать по нижней границе

Третья группа флагов относится к текущей позиции вывода:

Флаг

ОПИСАНИЕ

TA_NOUPDATECP

Не изменять значения текущей позиции вывода текста (используется по умолчанию)

TA_UPDATECP

После вывода вычислить новое значение теку­щей позиции

Из каждой группы флагов используют только один, например:

SetTextAlign(hdc, TA_CENTER | TA_BASELINE | TA_UPDATECP);

Функция SetTextAlign возвращает старое значение режима выравни­вания или, в случае ошибки, - GDI_ERROR.

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