ボタンのフォントを変更する.
フォントはメンバ変数として追加して,あらかじめ作成しておく.
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;
}
参照
ボタンの色
ボタンのフォント(オーナー描画)
ボタンにビットマップ表示