MFC中SetFont(CFont *font)方法容易出错点

在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);







则字体设置生效。


你可能感兴趣的:(MFC)