注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Sky

积蓄能量,准备奔跑!

 
 
 

日志

 
 

MFC之设置字体  

2008-03-19 22:25:21|  分类: VC++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

MFC中设置字体分为以下几种情况:

(1)       CView中:

CFont m_fontDlg;

COLORREF m_clrText;

 

CFontDialog  dlgFont

If dlgFont.DoModal() == IDOK

{

    LOGFONT  LogFnt;

   m_fontDlg.CreateFontIndirect(&LogFnt);

   m_clrText = dlgFont.GetColor();

   Invalidate();

}

OnDraw()函数中:

CFont * pfntOld = pDC->SelectObject(&m_fontDlg);

pDC->SetTextColor(m_clrText);

pDC->TextOut(10,10,”hello,world”);

pDC->SelectObject(pfntOld);

//该情况不能像记事本那样随便输入文字内容,输出的总是helloworld

//=====================================================

(2)       CEditView中:

CFontDialog FontDia;

  CFont* pFont = new CFont;

  CString m_strText ;

 

  LOGFONT LF;

  if (FontDia.DoModal() == IDOK)

  {

         m_Color = FontDia.GetColor();

         FontDia.GetCurrentFont(&LF);

         pFont->CreateFontIndirect(&LF);

  }

  CEdit& Edit = GetEditCtrl();

  Edit.SetFont(pFont,0);

  Edit.GetWindowText(m_strText);

  Edit.SetWindowText(m_strText);

//CEditView可像记事本那样随便输入文字内容,但不能设置字体颜色(网上查了很.

//多都没有)

//=====================================================

(3)       CRichEditView中:

CHARFORMAT CF;

  CFontDialog FontDia;

  CString m_strText;

if (FontDia.DoModal() == IDOK)

  {

         CRichEditCtrl& Edit = GetRichEditCtrl();

         FontDia.GetCharFormat(CF);

         Edit.SetDefaultCharFormat(CF);   //注意:不是SetCharFormat

         Edit.GetWindowText(m_strText); 

         Edit.SetWindowText(m_strText);

  }

//终于结合了(1)(2)的优点,像记事本那样可以

//输入文字,又可以随时改变字体以及字体颜色。
  评论这张
 
阅读(2745)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017