Wählen eine Schriftart

Dieses Thema beschreibt Beispielcode, der eine Schriftart -Dialogfeld wird angezeigt, damit ein Benutzer die Attribute einer Schriftart auswählen kann. Der Code initialisiert zuerst eine CHOOSEFONT Struktur und ruft dann die ChooseFont -Funktion, um das Dialogfeld anzuzeigen.

In diesem Beispiel wird das CF_SCREENFONTS-Flag angeben, dass das Dialogfeld nur Bildschirmschriftarten anzeigen soll. Es setzt das Flag CF_EFFECTS Steuerelemente anzuzeigen, die dem Benutzer ermöglichen, durchgestrichen, unterstrichen und Farboptionen auswählen.

Wenn ChooseFont TRUE angibt zurückgibt, dass der Benutzer die Schaltfläche OK geklickt hat die , auf den das LpLogFont Mitglied der CHOOSEFONT Struktur LOGFONT -Struktur enthält Informationen, die Schriftart und Font-Attribute, die vom Benutzer ausgewählten beschreibt. Das RgbColors -Element enthält die Farbe des ausgewählten Textes. Der Beispielcode verwendet diese Informationen zum Festlegen der Schriftart und Farbe für den Gerätekontext zugeordnet Besitzerfensters.

HWND Hwnd;                / / Besitzerfenster
HDC Hdc;                  / / display Gerätekontext des Besitzerfensters

CHOOSEFONT Cf;            / / gemeinsame Dialogfeld Struktur
statische LOGFONT lf;        / / logische Schriftartstruktur
statische DWORD RgbCurrent;   / / aktuelle Textfarbe
HFONT Hfont, HfontPrev;
DWORD RgbPrev;

/ / Initialize CHOOSEFONT
ZeroMemory (Amp; Cf, sizeof(CHOOSEFONT));
CF.lStructSize = Sizeof (CHOOSEFONT);
CF.hwndOwner = Hwnd;
CF.lpLogFont = & lf;
CF.rgbColors = RgbCurrent;
CF.Flaggen = CF_SCREENFONTS | CF_EFFECTS;

Wenn (ChooseFont(&cf) == TRUE) {}
    hFont = CreateFontIndirect(cf.lpLogFont);
    HfontPrev = SelectObject (Hdc, Hfont);
    RgbCurrent = cf.rgbColors;
    RgbPrev = SetTextColor (Hdc, RgbCurrent);
 .
 .
 .
} 

Index