标签:变量 esc static lin font clip 类变量 bit 句柄
CreateFont函数为什么改变不了字体?
CFont ? * ? f; ??
? ? ? ? ? f ? = ? new ? CFont; ??
? ? ? ? ? f-> CreateFont(30, ? // ? nHeight ??
? ? ? ? ? 0, ? // ? nWidth ??
? ? ? ? ? 0, ? // ? nEscapement ??
? ? ? ? ? 0, ? // ? nOrientation ??
? ? ? ? ? FW_BOLD, ? // ? 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( "Arial ")); ? // ? lpszFac ??
? ? ? ? ? GetDlgItem(IDC_STATIC1)-> SetFont(f);?
为什么我把_T( "Arial ")); ? ,改为"宋体","楷体","黑体","隶书",都没有任何的变化呢?应该如何改变字体呢?
[解决方法]
?
不一定要定义成类变量:?
CFont * f;?
f = new CFont; //你的程序,内存泄漏了,就这句?
f-> CreateFont(...);?
GetDlgItem(IDC_STATIC1)-> SetFont(f);?
f.Detch();?
?//加上这句,让CFont与字体句柄(HFONT)分离,因为句柄已被GetDlgItem(IDC_STATIC1)使用了,要防止CFont析构HFONT。?
delete f; //加上这句,解决内存泄漏?
?
?
标签:变量 esc static lin font clip 类变量 bit 句柄
原文地址:http://www.cnblogs.com/time-is-life/p/7747919.html