Erstellen einer logischen Schriftart
Sie können das Dialogfeld Schriftart allgemein verwenden, um verfügbare Schriftarten anzuzeigen. Das Dialogfeld ChooseFont wird angezeigt, nachdem eine Anwendung die Member einer CHOOSEFONT-Struktur initialisiert und die CHOOSEFONT-Funktion aufruft. Nachdem der Benutzer eine der verfügbaren Schriftarten ausgewählt und die Schaltfläche OK gedrückt hat, initialisiert die ChooseFont-Funktion eine LOGFONT-Struktur mit den relevanten Daten. Ihre Anwendung kann dann die Funktion CreateFontIndirect aufrufen und basierend auf der Anforderung des Benutzers eine logische Schriftart erstellen. Im folgenden Beispiel wird dies veranschaulicht.
HFONT FAR PASCAL MyCreateFont( void )
{
CHOOSEFONT cf;
LOGFONT lf;
HFONT hfont;
// Initialize members of the CHOOSEFONT structure.
cf.lStructSize = sizeof(CHOOSEFONT);
cf.hwndOwner = (HWND)NULL;
cf.hDC = (HDC)NULL;
cf.lpLogFont = &lf;
cf.iPointSize = 0;
cf.Flags = CF_SCREENFONTS;
cf.rgbColors = RGB(0,0,0);
cf.lCustData = 0L;
cf.lpfnHook = (LPCFHOOKPROC)NULL;
cf.lpTemplateName = (LPSTR)NULL;
cf.hInstance = (HINSTANCE) NULL;
cf.lpszStyle = (LPSTR)NULL;
cf.nFontType = SCREEN_FONTTYPE;
cf.nSizeMin = 0;
cf.nSizeMax = 0;
// Display the CHOOSEFONT common-dialog box.
ChooseFont(&cf);
// Create a logical font based on the user's
// selection and return a handle identifying
// that font.
hfont = CreateFontIndirect(cf.lpLogFont);
return (hfont);
}