Выбор шрифта

Эта статья описывает типовой код, который отображает диалоговое окно Шрифт (Font), так что пользователь может выбрать атрибуты шрифта. Типовой код сначала инициализирует структуру CHOOSEFONT, а затем вызывает функцию ChooseFont, которая отображает на экране диалоговое окно.

Этот пример устанавливает флажок CF_SCREENFONTS, чтобы определить какое диалоговое окно будет показывать только экранные шрифты. Он устанавливает флажок CF_EFFECTS, чтобы показать органы управления, которые позволяют пользователю выбирать параметры зачёркивания, подчёркивания и цвета шрифта.

Если ChooseFont, возвращает значение ИСТИНА (TRUE), то это означает, что пользователь щёлкнул по кнопке OK, и что структура, указанная членом lpLogFont структуры CHOOSEFONT содержит информацию, которая описывает шрифт и его атрибуты, выбранные пользователем. Член rgbColors содержит выбранный цвет текста. Типовой код использует эту информацию, чтобы установить шрифт и цвет текста для контекста устройства, связанного с окном владельца.

Пример

HWND hwnd;                // окно-владелец
HDC hdc;                  // дисплейный контекст устройства
			  // окна владельца

CHOOSEFONT cf;            // структура станд. блока диалога
static LOGFONT lf;        // структура логического шрифта
static DWORD rgbCurrent;  // текущий цвет текста
HFONT hfont, hfontPrev;
DWORD rgbPrev;

// Инициализация структуры CHOOSEFONT
ZeroMemory(&cf, sizeof(CHOOSEFONT));
cf.lStructSize = sizeof (CHOOSEFONT);
cf.hwndOwner = hwnd;
cf.lpLogFont = &lf;
cf.rgbColors = rgbCurrent;
cf.Flags = CF_SCREENFONTS | CF_EFFECTS;

if (ChooseFont(&cf)==TRUE) 
   {
    hfont = CreateFontIndirect(cf.lpLogFont);
    hfontPrev = SelectObject(hdc, hfont);
    rgbCurrent= cf.rgbColors;
    rgbPrev = SetTextColor(hdc, rgbCurrent);
    .
    .
    .
   }

 

Назад в оглавление темы
На главную страницу темы

Hosted by uCoz