在MFC中,我们企图修改控件中的字体,可以使用SetFon(CFont *font)函数。产生一个CFont对象,如下:
CFont* font = new CFont;
font->CreateFont(14, // nHeight
0, // nWidth
0, // nEscapement
0, // nOrientation
FW_NORMAL, // nWeight
FALSE, // bItalic
FALSE, // bUnderline
0, // cStrikeOut
ANSI_CHARSET, // nCharSet
OUT_DEFAULT_PRECIS, // nOutPrecision
CLIP_DEFAULT_PRECIS, // nClipPrecision
DEFAULT_QUALITY, // nQuality
DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily
_T("Microsoft Sans Serif")); // lpszFac
myButton->SetFont(font);
然而若如上面代码那样,把font设置为局部变量,会发现修改不成功。
这时需要把font设置为全局变量,例如:
CFont font;//声明在头文件中 不再使用指针
font.CreateFont(14, // nHeight
0, // nWidth
0, // nEscapement
0, // nOrientation
FW_NORMAL, // nWeight
FALSE, // bItalic
FALSE, // bUnderline
0, // cStrikeOut
ANSI_CHARSET, // nCharSet
OUT_DEFAULT_PRECIS, // nOutPrecision
CLIP_DEFAULT_PRECIS, // nClipPrecision
DEFAULT_QUALITY, // nQuality
DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily
_T("Microsoft Sans Serif")); // lpszFac
myButton.SetFont(font);
则字体设置生效。