Dit onderwerp wordt beschreven voorbeeldcode waarmee een dialoogvenster lettertype wordt weergegeven zodat een gebruiker de kenmerken van een lettertype kunt kiezen. De voorbeeldcode eerst initialiseert een CHOOSEFONT structuur, en roept vervolgens de functie ChooseFont om het dialoogvenster weer te geven.
In dit voorbeeld stelt u de vlag CF_SCREENFONTS als u wilt opgeven dat het dialoogvenster alleen schermlettertypen moet worden weergegeven. Het stelt u de vlag CF_EFFECTS besturingselementen waarmee de gebruiker te selecteren kleuropties, onderstreping en strikeout wilt weergeven.
Als ChooseFont TRUE retourneert, die aangeeft dat de gebruiker heeft geklikt op de knop OK , de LOGFONT structuur waarnaar wordt verwezen door het lid lpLogFont van de CHOOSEFONT structuur bevat informatie die beschrijft het lettertype en de lettertypekenmerken geselecteerd door de gebruiker. De rgbColors lid bevat de kleur van de geselecteerde tekst. De voorbeeldcode gebruikt deze informatie om de kleur van het lettertype en tekst voor de apparaatcontext van de gekoppeld aan het venster eigenaar instellen.
HWND hwnd; / / eigenaar venster
HDC hdc; / / display device-context van eigenaar venster
CHOOSEFONT cf; / / common dialog box structuur
statische LOGFONT lf; / / logische lettertypestructuur
statische DWORD-rgbCurrent; / / huidige tekstkleur
HFONT hfont, hfontPrev;
DWORD-rgbPrev;
/ / CHOOSEFONT initialiseren
ZeroMemory (amp; cf, sizeof(CHOOSEFONT));
CF.lStructSize = sizeof (CHOOSEFONT);
CF.hwndOwner = hwnd;
CF.lpLogFont = & lf;
CF.rgbColors = rgbCurrent;
CF.Vlaggen = CF_SCREENFONTS | CF_EFFECTS;
Als (ChooseFont(&cf) == TRUE) {}
hfont = CreateFontIndirect(cf.lpLogFont);
hfontPrev = SelectObject (hdc, hfont);
rgbCurrent = cf.rgbColors;
rgbPrev = SetTextColor (hdc, rgbCurrent);
.
.
.
}