Вибір шрифту

У цьому розділі описано приклад коду, який відображає діалогове вікно шрифт , так що може обрати атрибути шрифту. Приклади коду першу ініціалізує 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);
 .
 .
 .
} 

Index