Fonts 在CButton mfc上显示符号字体

Fonts 在CButton mfc上显示符号字体,fonts,mfc,cbutton,Fonts,Mfc,Cbutton,我需要在mfc的CButton上显示符号字体。如何做到这一点?代码示例更有用。符号字体可以来自webdings或cusotm安装字体 我尝试了下面提到的代码,但它不起作用。我把这段代码放在对话框的onpaint方法中 CWnd *win = GetDlgItem(IDC_BUTTON1); CDC *dc = win->GetDC(); CFont font; VERIFY(font.CreateFont( 12,

我需要在mfc的CButton上显示符号字体。如何做到这一点?代码示例更有用。符号字体可以来自webdings或cusotm安装字体

我尝试了下面提到的代码,但它不起作用。我把这段代码放在对话框的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();  

只需使用
CreateFontIndirect
创建所需大小的字体

使用
CWnd::SetFont
将字体设置为按钮

记住,只要按钮或控件存在,就要在父类中保留字体,如果您使用了字体


使用此方法,您只能在控件中显示此字体中的字符,无法将其他字体中的字符与此方法混合使用。

此论坛的要点是,您可以先自己尝试一些内容,然后在不起作用时提问。您好,请参阅我编辑的问题描述