博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MFC字体(一)(控件文字字体)
阅读量:5840 次
发布时间:2019-06-18

本文共 1732 字,大约阅读时间需要 5 分钟。

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是字体的名称。

转载地址:http://btvcx.baihongyu.com/

你可能感兴趣的文章
java设计模式之——代理模式
查看>>
每天学习2小时的故事
查看>>
asa-url-filter
查看>>
iOS入门培训还要钱?看博客,看视频都拿下
查看>>
mysql:error: 'Access denied for user 'root'@'localhost' (using password: YES)
查看>>
rsync 不能复制数据
查看>>
Workspace in use or cannot be created, choose a different one.
查看>>
linux下mongodb的安装
查看>>
分页查询
查看>>
安卓网络编程
查看>>
我的个人博客地址
查看>>
java 的HashMap和HashTable的区别?
查看>>
php页面防止重复提交
查看>>
Perl DBI模块的例子
查看>>
python中str和repr区别
查看>>
升级win10后无法使用桥接网络解决方法
查看>>
如何进行跨网段的远程唤醒
查看>>
数据挖掘-同比与环比
查看>>
nginx+php详解
查看>>
怎样取php一个字符串中的某个字符
查看>>