在MFC中如何利用字体对话库在选中的字体进行设置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在MFC中如何利用字体对话库在选中的字体进行设置相关的知识,希望对你有一定的参考价值。
参考技术A 这是我利用字体对话框设置编辑控件字体的代码,你可以参考一下:LOGFONT LogFont;
CFont *font=this->GetFont();
if(font==NULL)
font=new CFont;
font->CreatePointFont(120, "隶书");
font->GetLogFont(&LogFont);
delete font;
else
font->GetLogFont(&LogFont);
CFontDialog FontDlg(&LogFont);//字体对话框
if(FontDlg.DoModal()==IDOK)
m_font.DeleteObject();
m_font.CreateFontIndirect(&LogFont);
SetFont(&m_font);//这样设置不能改变编辑框文字颜色,仅能改变字体其他属性
//改变文字颜色必须响应WM_CTLCOLOR消息
//在消息函数处理
//CHARFORMAT cf;
//cf.dwMask=CFM_CHARSET|CFM_COLOR;
//cf.crTextColor=FontDlg.GetColor();
crTextColor=FontDlg.GetColor();//crTextColor在WM_CTLCOLOR消息函数中用于设
//置文字颜色
InvalidateRect(NULL);
//cf.dwEffects=~CFE_AUTOCOLOR;
//SetDefaultCharFormat(cf);
追问
首先谢谢你,我还想问的是我只想对我选中的字体进行修改,应该咋办。
追答是在编辑框中吗?
MFC如何设置对话框静态文字背景以及文字颜色
而不是所有的对话框。。新手拜托各位大侠了,所以只能在这个对话框类的函数里下手啊我只要改变这个对话框
参考技术A 很简单。。对大家有用的赞个啊。。。。1,新建基于对话框的mfc程序。
添加一个static标签控件,ID为:IDC_STATIC_DEMO
在CXXXDlg类中添加一个类型为CBrush的成员变量m_brs;
m_brs.CreateSolidBrush(RGB(0,0,55));//需要程序使用的背景画刷
并且在CXXXDlg的构造函数中添加一行代码
在CXXXDlg中添加WM_CTLCOLOR消息处理函数
然后在OnCtlColor中写下面的代码:
if(IDC_STATIC_DEMO==pWnd->GetDlgCtrlID())//判断正在绘制的是不是我们需要改变的控件
pDC->SetBkMode(TRANSPARENT);//设置透明输出
pDC->SetTextColor(RGB(255,0,0));//设置文字颜色
return
m_brs;//用自定义的画刷去绘制背景
这样。。。就OK了。。
亲,给点分吧,这年头,不容易啊。。。别忘了哦。。。
PS:如果要该按钮的,需要添加DrawItem这个虚函数去搞定。。。。
以上是关于在MFC中如何利用字体对话库在选中的字体进行设置的主要内容,如果未能解决你的问题,请参考以下文章