» Главная
eXcode.ru » Статьи » Delphi/Pascal » WinAPI
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 22





Окна пвх

Адреса офисов. Пластиковые окна и двери.

okna-de.ru


Корм для кошек доставка

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

anyzoo.ru




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




Источник: http://decoding.narod.ru/api/font/font.html

Сегодня поговорим о шрифтах, и о том, каким образом работать с ними на 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 );


На сегодня это все. Успехов в программировании.
К началу статьи





Добавил: LedWormДата публикации: 2005-09-24 19:45:21
Рейтинг статьи:2.83 [Голосов 6]Кол-во просмотров: 7424

Комментарии читателей

Всего комментариев: 2

2012-01-22 00:49:11
герой
согласен!

2010-12-28 15:40:07
*****
Аффтар, ты мудак!
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Какую БД предпочитаете?
MSSQL
20% (38)
BDE
1% (1)
MySQL
35% (68)
Access
6% (11)
InterBase
11% (21)
Paradox
3% (5)
Oracle
10% (19)
PostgreSQL
0% (0)
Другой
3% (6)
Не использую БД!
12% (23)

Проголосовало: 192
Молодой програмер, во сне ласкает свою жену, нежно поглаживая её, возбуждающе целует, доводя до оргазма. Та, проснувшись от неземного наслаждения, спрашивает: дорогой ты что делаешь? Тот во сне отвечает, модем сетаплю... :)
Рейтинг: 4.5/10 (2)
Посмотреть все анекдоты

 
eXcode.ru » Статьи » Delphi/Pascal » WinAPI