論理フォントの作成

[ フォント ] 共通ダイアログ ボックスを使用すると、使用可能なフォントを表示できます。 ChooseFont ダイアログ ボックスは、アプリケーションが CHOOSEFONT 構造体のメンバーを初期化し、CHOOSEFONT 関数を呼び出した後に表示されます。 ユーザーが使用可能なフォントの 1 つを選択し、[ OK] ボタンを押すと、 ChooseFont 関数は関連するデータを使用して LOGFONT 構造体を初期化します。 その後、アプリケーションで CreateFontIndirect 関数を呼び出し、ユーザーの要求に基づいて論理フォントを作成できます。 この方法を次の例に示します。

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); 
}