[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Программирование под ОС / Pascal - Delphi /

Работа со шрифтами на Win API



Сегодня поговорим о шрифтах, и о том, каким образом работать с ними на Win API. Нам потребуется переменная типа HFONT. Изменить стиль шрифта можно у любого компонента, я покажу это на примере кнопки.


var
  Font: HFONT;
  Btn: HWND;

Для создания нового экземпляра шрифта используется функция CreateFont, которая, в случае успешного завершения, возвращает Handle нового шрифта. Рассмотрим параметры этой функции.


procedure CreateFont(
   nHeight: integer,             // логическая высота шрифта

   nWidth: integer,              // логическая ширина символа
   nEscapement: integer,         // угол наклона
   nOrientation: integer,        // базовый угол ориентации
   fnWeight: integer,            // вес шрифта (можно считать как толщину символа)
   fdwItalic: Cardinal,          // будет ли шрифт курсивным

   fdwUnderline: Cardinal,       // будет ли шрифт подчеркнутым
   fdwStrikeOut: Cardinal,       // будет ли шрифт зачеркнутым
   fdwCharSet: Cardinal,         // идентификатор набора символов
   fdwOutputPrecision: Cardinal, // точность вывода
   fdwClipPrecision: Cardinal,   // точность отсечения

   fdwQuality: Cardinal,         // качество вывода
   fdwPitchAndFamily: Cardinal,  // шаг и семейство шрифта
   lpszFace: PChar               // Название шрифта
   ): HFONT;

Подробную информацию по каждому параметру можно прочитать в справке, я обращу ваше внимание лишь на некоторые из них. Отрицательное значение первого параметра говорит о том, что будет выбрано абсолютное значение высоты шрифта. Третий параметр отвечает за угол поворота шрифта относительно оси X. Угол задается в десятых долях градуса, то есть, чтобы повернуть текст на угол на 90°, нужно задать значение, равное 900. Для последних параметров можно использовать значение по умолчанию. Но если мы собираемся повернуть текст на какой-либо угол, то параметр fdwQuality лучше задать как ANTIALIASED_QUALITY, в этом случае текст будет сглажен. Посмотрим, как это реализуется.


Font := CreateFont( -30, 15, 25, 10, 1000, 1, 1, 0,
                    DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,
                    CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY,
                    DEFAULT_PITCH or FF_DONTCARE, 'Courier New' );

Чтобы назначить компоненту новый шрифт, ему нужно послать сообщение WM_SETFONT, где в качестве параметра wParam, нужно указать значение, возвращенное функцией CreateFont.


Btn := CreateWindowEx( 0, 'Button', 'Наш новый шрифт', WS_CHILD or WS_VISIBLE,
                       10, 10, 280, 60, Wnd, 0, hInstance, nil );
SendMessage( Btn, WM_SETFONT, Font, 0 );

На сегодня это все. Успехов в программировании.




Комментарии

BSol
22-06-2010   
Желательно к каждой статье рабочий исходник. Вторая статья а рабочего модуля получить не получается...

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Программирование под ОС / Pascal - Delphi /

Работа со шрифтами на Win API
06-06-2010   

Сегодня поговорим о шрифтах, и о том, каким образом работать с ними на Win API. Нам потребуется переменная типа HFONT. Изменить стиль шрифта можно у любого компонента, я покажу это на примере кнопки... подробнее

Кол. просмотров: общее - 5002 сегодня - 0

Работа с таймером на Win API
06-06-2010   

Таймер - вещь в хозяйстве очень полезная. Если некое действие нужно повторять с определенной периодичностью, то таймер, это как раз то, что нужно... подробнее

Кол. просмотров: общее - 5024 сегодня - 0

Работа с мультимедийным таймером на Win API
06-06-2010   

Мы уже знакомы с системным таймером, сегодня познакомимся с мультимедийным, основное отличие которого, более высокая скорость (точность) работы... подробнее

Кол. просмотров: общее - 5171 сегодня - 1

Создание CheckBoxов средствами Win API
06-06-2010   

Сегодня наша программа научится работать с CheckBoxами. CheckBox можно представить как флаг, который можно установить или сбросить, и в зависимости от его состояния выполнять определенные действия... подробнее

Кол. просмотров: общее - 5398 сегодня - 0

Создание группы RadioButton средствами Win API
06-06-2010   

В прошлый раз мы сделали несколько радио-кнопок, которые автоматически объединялись в одну группу. Сейчас рассмотрим, как создавать несколько независимых групп радио-кнопок... подробнее

Кол. просмотров: общее - 5043 сегодня - 0



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects