Выбор шрифта

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

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

Если ChooseFont возвращает значение TRUE, указывающее, что пользователь нажал кнопку ОК , , член lpLogFont структуры CHOOSEFONT адресом структуры LOGFONT содержит сведения, описывающие шрифта и атрибуты шрифта, выбранного пользователем. Член rgbColors содержит цвет выделенного текста. Пример кода использует эту информацию для задания шрифта и цвета для контекста устройства, связанный с окном-владельцем.

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

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

/ / Инициализировать CHOOSEFONT
ZeroMemory (amp; cf, sizeof(CHOOSEFONT));
CF.lStructSize = sizeof (CHOOSEFONT);
CF.hwndOwner = hwnd;
CF.lpLogFont = & lf;
CF.rgbColors = rgbCurrent;
CF.Флаги = CF_SCREENFONTS | CF_EFFECTS;

Если (ChooseFont(&cf) == TRUE) {}
    Hfont = CreateFontIndirect(cf.lpLogFont);
    hfontPrev = SelectObject (hdc, hfont);
    rgbCurrent = cf.rgbColors;
    rgbPrev = SetTextColor (hdc, rgbCurrent);
 .
 .
 .
} 

Index