Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1139580
  • 博文数量: 141
  • 博客积分: 2853
  • 博客等级: 少校
  • 技术积分: 2266
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-04 12:03
文章分类

全部博文(141)

文章存档

2014年(3)

2013年(12)

2012年(126)

分类: C/C++

2014-01-09 15:30:30

摘自:http://blog.csdn.net/chenlunju/article/details/7012200

方法一:

步骤一:在Dlg类中增加一个类成员变量:   

CFont m_editFont;  
CFont m_editFont;


注意:这里Font对象必须是类成员变量,不能是局部变量,否则会出现只改变了光标的大小,而不能改变字体的大小。

步骤二:在OnInitDialog方法中增加下列语句:


m_editFont.CreatePointFont(180, "宋体");    
m_editPlace.SetFont(&m_editFont); // 设置新字体 
m_editFont.CreatePointFont(180, "宋体");

m_editPlace.SetFont(&m_editFont); // 设置新字体


方法二:

在OnInitDialog方法中增加下列语句也可以实现:


CFont* ptf=m_editPlace.GetFont(); // 得到原来的字体  
 
LOGFONT lf;  
 
ptf->GetLogFont(&lf);  
 
lf.lfHeight = 20; // 改变字体高度   
 
strcpy (lf.lfFaceName, "隶书"); // 改变字体名称   
 
m_editFont.CreateFontIndirect(&lf);  
 
m_editPlace.SetFont(&m_editFont); // 设置新字体 
       CFont* ptf=m_editPlace.GetFont(); // 得到原来的字体

       LOGFONT lf;

       ptf->GetLogFont(&lf);

       lf.lfHeight = 20; // 改变字体高度

       strcpy (lf.lfFaceName, "隶书"); // 改变字体名称

       m_editFont.CreateFontIndirect(&lf);

       m_editPlace.SetFont(&m_editFont); // 设置新字体


注意:If是个新的结构体变量,GetLogFont函数是实现将ptf中的LOGFONT结构体变量拷贝给If了,所以改变If不等于是改变ptf中的LOGFONT变量。所以下面必须加这两句来创建新的字体对象

m_editFont.CreateFontIndirect(&lf);

m_editPlace.SetFont(&m_editFont); // 设置新字体

阅读(1946) | 评论(0) | 转发(0) |
0

上一篇:大四找工作心得

下一篇:MFC改变字体颜色

给主人留下些什么吧!~~