-1

mfc の CButton にシンボリック フォントを表示する必要があります。これを達成する方法は?コード サンプルがより役立ちます。シンボリック フォントは、webdings またはカスタム インストール フォントから取得できます。

以下のコードを試しましたが、うまくいきません。このコードをダイアログ ボックスの onpaint メソッドに入れました。

            CWnd *win = GetDlgItem(IDC_BUTTON1);
    CDC *dc = win->GetDC();
    CFont font;
    VERIFY(font.CreateFont(
       12,                        // nHeight
       0,                         // nWidth
       0,                         // nEscapement
       0,                         // nOrientation
       FW_NORMAL,                 // nWeight
       FALSE,                     // bItalic
       FALSE,                     // bUnderline
       0,                         // cStrikeOut
       SYMBOL_CHARSET,              // nCharSet
       OUT_DEFAULT_PRECIS,        // nOutPrecision
       CLIP_DEFAULT_PRECIS,       // nClipPrecision
       DEFAULT_QUALITY,           // nQuality
       DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily
       _T("SAPDings")));                 // lpszFacename 

    // Do something with the font just created...
    //CClientDC dc(this);  
    CFont* def_font = dc->SelectObject(&font);
    dc->TextOutW(5, 5, _T("0x0027"), 5);
    dc->SelectObject(def_font);

    // Done with the font.  Delete the font object.
    font.DeleteObject();  
4

1 に答える 1

0

CreateFontIndirectを使用して、目的のサイズのフォントを作成するだけです。

CWnd::SetFontボタンにフォントを設定するために使用します。

フォントを使用した場合、ボタンまたはコントロールが存在する限り、親クラスにフォントを保持することを忘れないでください。

この方法では、このフォントの文字のみをコントロールに表示できます。この方法で他のフォントの文字を混在させることはできません。

于 2014-05-13T10:27:22.307 に答える