码迷,mamicode.com
首页 > 其他好文 > 详细

CreateFont函数为什么改变不了字体?该怎么解决

时间:2017-10-28 21:08:31      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:变量   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; //
加上这句,解决内存泄漏?

?

?

CreateFont函数为什么改变不了字体?该怎么解决

标签:变量   esc   static   lin   font   clip   类变量   bit   句柄   

原文地址:http://www.cnblogs.com/time-is-life/p/7747919.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!