В этом разделе описывается пример кода, который отображает диалоговое окно Шрифт , так что пользователь может выбрать атрибуты шрифта. В образце кода сначала инициализирующего структуру 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);
.
.
.
}