У цьому розділі описано приклад коду, який відображає діалогове вікно шрифт , так що може обрати атрибути шрифту. Приклади коду першу ініціалізує CHOOSEFONT структуру а потім викликає функцію ChooseFont , щоб відобразити діалогове вікно.
У цьому прикладі встановлює CF_SCREENFONTS прапор, щоб визначити, що діалогове вікно має відображати лише екранних шрифтів. Він встановлює CF_EFFECTS прапор, щоб відобразити елементи керування, які дозволяють користувачеві вибрати, закреслений, підкреслення та параметри кольору.
Якщо ChooseFont Повертає логічне значення ІСТИНА, про те, що користувач натиснув кнопку OK у LOGFONT структура вказав на CHOOSEFONT структури, член lpLogFont містить інформацію, що описує шрифт і атрибути шрифту, обраних користувачем. Член rgbColors містить колір виділеного тексту. Приклади коду використовує цю інформацію, щоб встановити колір шрифту та тексту для контексту пристрою, пов'язаних з вікна власник.
HWND hwnd; / / Власник вікно
HDC hdc; / / дисплей пристрою контексті власник вікна
CHOOSEFONT cf; / / Загальні діалоговому вікні структури
статичний lf LOGFONT; / / логічної структури шрифтів
статичний типу 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 = об'єкт (hdc, hfont);
rgbCurrent = cf.rgbColors;
rgbPrev = SetTextColor (hdc, rgbCurrent);
.
.
.
}