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

         

Функция DrawText


Функция DrawText предназначена для форматированного вывода текста в прямоугольную область окна:

int WINAPI DrawText(HDC hdc, LPCSTR lpsz, int cb, RECT FAR* lprc, UINT fuFormat);

Параметр hdc определяет контекст устройства вывода. В качестве этого параметра нельзя указывать контекст метафайла (метафайлами мы займемся позже, в одном из следующих томов "Библиотеки системного программиста").

Адрес выводимой текстовой строки задается при помощи параметра lpsz. Этот параметр является дальним указателем на строку символов.

Длина строки символов задается в байтах параметром cb.

Параметр lprc является дальним указателем на структуру типа RECT, определяющую координаты верхнего левого и правого нижнего углов прямоугольной области, в которую будет выведен текст. Текст может быть выравнен и отформатирован внутри этой области в соответствии со значением, указанным параметром fuFormat.

Параметр задается как набор флагов с использованием операции логического ИЛИ:



Значение Описание
DT_BOTTOM Выравнивание текста по верхней границе прямоугольника, заданного параметром lprc. Этот флаг должен использоваться в комбинации с флагом DT_SINGLELINE
DT_CALCRECT Определение высоты и ширины прямоугольника без вывода текста. Если указан этот флаг, функция DrawText возвращает высоту текста. Если выводимый текст состоит из нескольких строк, функция использует ширину прямоугольника, заданную параметром lprc, и расширяет базу этого прямоугольника до тех пор, пока прямоугольник не вместит в себя последнюю строку текста. Если текст состоит из одной строки, функция изменяет правую сторону прямоугольника до тех пор, пока последний символ строки не поместится в прямоугольник.

В структуру, заданную параметром lprc, после возврата из функции будут записаны размеры прямоугольной области, использованной для вывода текста

DT_CENTER Центрирование текста по горизонтали
DT_EXPANDTABS Расширение символов табуляции. По умолчанию каждый символ табуляции расширяется в восемь символов
DT_EXTERNALLEADING Вывод текста выполняется с учетом межстрочного расстояния (external leading), определенного для выбранного шрифта разработчиком шрифтов
DT_LEFT Выравнивание текста по левой границе прямоугольной области, заданной параметром lprc
DT_NOCLIP Вывод текста выполняется без ограничения области вывода. Этот режим увеличивает скорость вывода текста
DT_NOPREFIX Выключение директивы подчеркивания &. По умолчанию символ & используется для того, чтобы вывести следующий символ с выделением подчеркиванием. Для вывода самого символа & его следует повторить дважды. Флаг DT_NOPREFIX выключает этот режим
DT_RIGHT Выравнивание текста по правой границе прямоугольной области, заданной параметром lprc
DT_SINGLELINE Текст состоит только из одной строки. Символы возврата каретки и перевода строки не вызывают перехода на следующую строку
DT_TABSTOP Установить точки останова по символам табуляции
DT_TOP Выравнивание текста по верхней границе прямоугольной области, заданной параметром lprc. Флаг используется только для текста, состоящего из одной строки
DT_VCENTER Выравнивание текста по вертикали. Флаг используется только для текста, состоящего из одной строки. Если текст состоит из одной строки, необходимо вместе с этим флагом указывать флаг DT_SINGLELINE
DT_WORDBREAK Выполнять свертку слов в пределах заданной параметром lprc прямоугольной области. Если слово не помещается в строке, оно может быть перенесено на следующую строку

Если перед вызовом функции вы установили режим обновления текущей позиции (вызвав функцию SetTextAligh с параметром TA_UPDATECP), текст будет выведен начиная с текущей позиции, которая устанавливается за последним выведенным ранее символом. Свертка слов при этом не выполняется.

Функция DrawText в случае успешного завершения возвращает высоту прямоугольной области, использованной для вывода текста.



Содержание раздела