MFC字体(一)(控件文字字体)

1、建立基于对话框工程:My

2、添加控件:静态文本控件:IDC_STATIC1

编辑框控件:建立一关联变量CEdit  m_EditControl

3、在OnInitDialog中添加如下代码:

CFont * m_pFont;

     m_pFont = new CFont;

     m_pFont->CreateFont(16,            // nHeight

     0,           // nWidth

     0,           // nEscapement

     0,           // nOrientation

     FW_BOLD,     // nWeight

     TRUE,        // 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

     

     m_EditControl.SetFont(m_pFont,false);

     m_EditControl.SetWindowText("Hello!");

     GetDlgItem(IDC_STATIC1)->SetFont(m_pFont,false);

注:

1

需要注意的是,这里我们使用的是CFont指针,而不是普通的CFont局部变量,如果把程序改成下面这样:

CFont m_pFont;

运行后就得不到想要的效果了,因为OnInitDialog函数执行完毕,CFont m_pFont就会被清除。必须保证SetFont设置的字体对象在对话框关闭前一直有效。所以通常是使用指针或类成员的方式来保存所建立的字体对象。

2

也可以定义CMyDlg类的成员变量:

CFont *m_pFont;

CFont m_Font;

3

若编辑框控件IDC_EDIT1未定义CEdit变量m_EditControl,可以如下调用:

CEdit* m_EditControl = CEdit*GetDlgItem(IDC_EIDT1);

m_EditControl->SetFont(m_pFont,false);

 

MFC程序,首先用CreateFont来建立一个字体句柄,然后再用SendMessage发给控件WM_SETFONT消息,将建立的字体句柄赋值过去,就可以了。

 

CreateFont()函数的MSDN翻译

函数功能:该函数创建一种有特殊性的逻辑字体,此逻辑字体可以在后面被任何设备选择。

函数原型:

HFONT CreateFont(int nHeight,
                   int nWidth,
                 int nEscapement,
                 int nOrientation,
                 int fnWeight,
                 DWORD fdwltalic,
                 DWORD fdwUnderline,
                 DWORD fdwStrikeOut,
                 DWORD fdwCharSet,
                 DWORD fdwOutputPrecision,
                 DWORD fdwClipPrecision,
                 DWORD fdwQuality,
                 DWORD fdwPitchAndFamily,
                 LPCTSTR lpszFace)

nHeight是字体的高度。

nWidth是字体的宽度。

nEscapement是字体的倾斜角。

nOrientation是字体的倾斜角。

fnWeight是字体的粗细。

fdwItalic是字体是否斜体。

fdwbUnderline是字体是否有下划线。

fdwStrikeOut是字体是否有删除线。

fdwCharSet是字体使用的字符集。

fdwOutPrecision是指定如何选择合适的字体。

fdwClipPrecision是用来确定裁剪的精度。

fdwQuality是怎么样跟选择的字体相符合。

fdwPitchAndFamily是间距标志和属性标志。

lpszFacel是字体的名称。

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值