工控编程吧
标题:
48上位机VC MFC字体及颜色自由设置
[打印本页]
作者:
qq263946146
时间:
2015-11-28 12:45
标题:
48上位机VC MFC字体及颜色自由设置
(, 下载次数: 0)
上传
点击文件名下载附件
48上位机VC MFC字体及颜色自由设置
功能展示
有时我们在开发上位机程序时,想让程序有不同的字体和颜色,或是让用户选择自己的字体颜色,我们就得设计出这样的功能,当前例程我们实现了这一功能,效果如图
要点提示
MFC封闭了CFontDialog类,此类可以对我们操作系统如WIN7字体进行加载,用户可以通过此类选择我们系统安装的字体,同时在字体对话框中还可以设置字体大小,颜色,效果,字符集等属性。要使用CFontDialog类,我们就得对此类封装的功能进行了解:
CFontDialog构造函数, DoModal用于显示字体对话框供用户设置字体; GetCurrentFont用于获取当前字体 ; GetColor获取选择的字体颜色; m_cf用于保储字体信息的结构体,如保存了字体的颜色
更多不常用函数,可查阅MSDN手册
实现功能
1.新建基于对话框的应用程序
2.拖拽一编辑框和按钮控件,给编辑框关联变量Cedit m_Text;添加两变量private:
CFont m_Font;//用于设置的字体;COLORREFm_Color;//用于设置的字体颜色
3.在OnCtlColor()中设置编辑框控件颜色switch(nCtlColor) {caseCTLCOLOR_EDIT:
{pDC->SetTextColor(m_Color);} break; default:break;}
4.添加按钮控件的消息响应函数
void CGkbc8Dlg::OnFont()
{
CFont* TempFont = m_Text.GetFont(); //获取编辑框当前字体
LOGFONT LogFont;
TempFont->GetLogFont(&LogFont);
CFontDialog dlg(&LogFont); //初始化字体信息
dlg.m_cf.rgbColors=m_Color;
if(dlg.DoModal()==IDOK)
{
m_Font.Detach();
LOGFONT temp;
dlg.GetCurrentFont(&temp); //获取当前字体信息
m_Font.CreateFontIndirect(&temp); //直接创建字体
m_Color = dlg.GetColor();
m_Text.SetFont(&m_Font); //设置字体
}
}
复制代码
下面我们来实现整个功能
[iqiyi]http://player.video.qiyi.com/363ebd5db623e9116f7ab68502b26c74/0/0/w_19rt9z88ox.swf-albumId=4949824109-tvId=4949824109-isPurchase=0-cnId=12[/iqiyi]
源码及视频下载
(仅在电脑可见)
(, 下载次数: 2)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4