Wybór czcionki

W tym temacie opisano przykładowy kod, który wyświetla okno dialogowe Czcionka , więc użytkownik może wybrać atrybuty czcionki. Przykładowy kod najpierw inicjuje strukturę CHOOSEFONT , a następnie wywołuje funkcję ChooseFont , aby wyświetlić okno dialogowe.

W tym przykładzie ustawia flagę CF_SCREENFONTS, aby określić, że w oknie dialogowym powinno być wyświetlane tylko czcionki ekranowe. Ustawia flagę CF_EFFECTS, aby wyświetlić elementy sterujące, umożliwiające użytkownikowi wybranie przekreślenie, podkreślenie i opcje kolorów.

ChooseFont zwraca wartość TRUE, wskazujące, że użytkownik kliknął przycisk OK , LOGFONT struktury wskazywanego przez członka lpLogFont struktury CHOOSEFONT zawiera informacje opisujące czcionki i atrybutów czcionki wybranej przez użytkownika. Element rgbColors zawiera kolor zaznaczonego tekstu. Kod przykładowy używa tych informacji do ustawienia czcionki i kolor dla kontekstu urządzenia związane z okna właściciela.

HWND hwnd;                / / właściciel okna
HDC hdc;                  / / wyświetlacza kontekstu urządzenia właściciela okna

CHOOSEFONT cf;            / / wspólne dialogowego struktury
statyczne lf LOGFONT;        / / logicznej struktury czcionek
statyczne DWORD rgbCurrent;   / / bieżący kolor tekstu
HFONT hfont, hfontPrev;
DWORD rgbPrev;

/ / Inicjuj CHOOSEFONT
ZeroMemory (amp; cf, sizeof(CHOOSEFONT));
CF.lStructSize = sizeof (CHOOSEFONT);
CF.hwndOwner = hwnd;
CF.lpLogFont = & lf;
CF.rgbColors = rgbCurrent;
CF.Flagi = CF_SCREENFONTS | CF_EFFECTS;

Jeżeli (ChooseFont(&cf) == TRUE) {}
    hfont = CreateFontIndirect(cf.lpLogFont);
    hfontPrev = WybierzObiekt (hdc, hfont);
    rgbCurrent = cf.rgbColors;
    rgbPrev = SetTextColor (hdc, rgbCurrent);
 .
 .
 .
} 

Index