Отображение символических шрифтов на CButton MFC

Мне нужно отобразить символический шрифт на CButton mfc. Как этого добиться? Пример кода более полезен. Символические шрифты могут быть из 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();  

1 ответ

Просто использовать CreateFontIndirect создать шрифт в нужном размере.

использование CWnd::SetFont установить шрифт для кнопки.

Не забудьте сохранить шрифт в родительском классе, пока кнопка или элемент управления существуют, если вы использовали шрифт.

С помощью этого метода вы можете отображать только символы из этого шрифта в элементе управления. С помощью этого метода невозможно смешивать символы из другого шрифта.

Другие вопросы по тегам