Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Вывод текста. Логические и физические шрифты.




При помощи функции DrawText, имеющей следующий прототип:

BOOL DrawText(

HDC hdc. // дескриптор контекста устройства

LPCTSTR IpString. // указатель на символьную строку

int nCount, // длина текста

LPRECT lpRect. // указатель на ограничивающий прямоугольник

UINT uFormat // флаги форматирования текста

);

можно вывести текст из строки IpString в прямоугольную область, заданную структурой типа RECT, используя метод форматирования, заданный параметром uFormat. Количество символов в выводимой строке задается параметром nCount. Если установить значение nCount в -1, то система сама определит длину строки IpString по завершающему нулевому символу. Но в этом случае программист должен позаботиться о том, чтобы строка действительно завершалась нулевым байтом. На месте последнего параметра функции задан набор флагов DT_SINGLELINE | DT_CENTER | DT_VCENTER, значения которых определяются в заголовочных файлах Windows. Флаги показывают, что текст будет выводиться в одну строку, по центру относительно горизонтали и вертикали внутри прямоугольной области, заданной четвертым параметром.

Когда клиентская область становится недействительной (например, при изменении размеров окна), WndProc получает новое сообщение WM_PAINT. Обрабатывая его, программа вновь вызывает функцию GetCLientRect и поэтому рисует текст опять в центре окна.

К счастью, при выводе текста приложениям не приходится напрямую общаться с физическими шрифтами. С физическими шрифтами работают шрифтовые драйверы, находящиеся в системе на одном уровне с драйверами графических устройств. В программах же используются так называемые логические шрифты. Логический шрифт представляет собой объект GDI, описывающий требования к шрифту со стороны приложения. GDI анализирует запрошенные параметры и подбирает наиболее подходящий шрифт из тех, которые зарегистрированы в системе. Объект логического шрифта находится под управлением GDI вместе с другими логическими объектами. Приложения работают с логическими шрифтами только через их дескрипторы, имеющие тип HFONT.

Функция CreateFont использует для описания логического шрифта 14 параметров, поэтому она не слишком удобна в использовании. Вместо нее лучше пользоваться функцией CreateFontIndirect. Эта функция получает указатель на структуру LOGFONT, в которой упакованы эти же 14 параметров. Функция имеет следующий прототип:

HFONT CreateFontIndiret(CONST LOGFONT* Iplf);

После того как логический шрифт выбран в контекст устройства, приложение может получить дополнительную информацию о подобранном физическом шрифте и его метриках.

 


Поделиться:

Дата добавления: 2015-01-29; просмотров: 326; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты