Last Updated 2011/04/06
Programming Tips Visual C++ MFC CButton  索 引 
ボタンのフォント
2003/04/04

ボタンのフォントを変更する.

フォントはメンバ変数として追加して,あらかじめ作成しておく.
CFont m_font;

CreateSizeFont(m_font, フォントの高さ);
m_button.SetFont(&font);

BOOL CreateSizeFont(CFont& font, int nSize)
{
    LOGFONT logfont;
    ::memset(&logfont, 0, sizeof(logfont));
    logfont.lfHeight  = nSize;
    logfont.lfCharSet = SHIFTJIS_CHARSET;
    _tcscpy(logfont.lfFaceName, _T("MS Pゴシック"));
    return font.CreateFontIndirect(&logfont);
}


現在のフォントの大きさから拡大縮小する時には以下のようにする.

if( CreateLargeFont(m_button, m_font) )
    m_button.SetFont(&font);

const BOOL CreateLargeFont(CWnd& window, CFont& font)
{
    BOOL bFlag      = FALSE;
    CDC* const  pDC = window.GetDC();
    if(pDC != NULL) {
        TEXTMETRIC tm;
        if(pDC->GetTextMetrics(&tm)) {
            LOGFONT logfont;
            ::memset(&logfont, 0, sizeof(logfont));
            logfont.lfHeight  = tm.tmHeight * 11 / 10;    // 10% 大きくする
            logfont.lfCharSet = SHIFTJIS_CHARSET;
            ::_tcscpy(logfont.lfFaceName, _T("MS Pゴシック"));
            bFlag = font.CreateFontIndirect(&logfont);
        }
        window.ReleaseDC(pDC);
    }
    return bFlag;
}


参照
ボタンの色
ボタンのフォント(オーナー描画)
ボタンにビットマップ表示
前後のTips
ボタンのフォント

DSS ProgrammingTipsCGI Ver2.01