Операционная система Microsoft Windows 3.1 для программиста -том 1


Система координат и режим отображения - часть 3


Это тот самый идентификатор, который возвращается функцией BeginPaint при обработке сообщения WM_PAINT.

Второй параметр (fuAlign) указывает новый режим выравнивания и задается при помощи трех групп флагов. Символические имена флагов определены в файле windows.h и начинаются с префикса TA_.

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

Флаг Описание
TA_LEFT Выравнивание по левой границе. Координаты соответствуют левой границе воображаемого прямоугольника, охватывающего текст (используется по умолчанию)
TA_CENTER Выравнивание по центру. Координаты соответствуют центру воображаемого прямоугольника, охватывающего текст
TA_RIGHT Выравнивание по правой границе

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

Флаг Описание
TA_TOP Выравнивание по верхней границе. Координаты соответствуют верхней границе воображаемого прямоугольника, охватывающего текст (используется по умолчанию)
TA_BASELINE Выравнивание по базовой линии выбранного шрифта
TA_BOTTOM Выравнивание по нижней границе

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

Флаг Описание
TA_NOUPDATECP Не изменять значение текущей позиции вывода текста (используется по умолчанию)
TA_UPDATECP После использования функций TextOut и ExtTextOut вычислить новое значение текущей позиции вывода текста

Понятие текущей позиции вам уже знакомо, если вы составляли программы MS-DOS, выводящие текст. Для приложений Windows в контексте отображения вы можете разрешить или запретить использование текущей позиции. Если использование текущей позиции вывода текста разрешено, ее значение будет обновляться при вызове функций вывода текста TextOut и ExtTextOut (еще одна функция для вывода текста, ее мы рассмотрим позже).

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

SetTextAlign(hdc, TA_CENTER | TA_BASELINE | TA_UPDATECP);

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

В любой момент времени вы можете определить текущий режим выравнивания, вызвав функцию GetTextAlign:

UINT GetTextAlign(hdc);

Эта функция возвращает текущий режим отображения для контекста, указанного функции в качестве параметра.

Небольшое замечание относительно типа данных UINT. Для операционной системы Windows этот тип данных определен следующим образом:

typedef unsigned int UINT;

Однако не следует думать, что для операционной системы Windows NT будет использовано такое же определение. Поэтому для беззнаковых данных размером в одно машинное слово следует пользоваться типом UINT, но не unsigned int. При этом у вас будет меньше проблем с переносом ваших приложений в другую среду, отличную от Windows версии 3.1.




Начало  Назад  Вперед



Книжный магазин