在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中如何利用字体对话库在选中的字体进行设置的主要内容,如果未能解决你的问题,请参考以下文章

MFC一个简单对话框中有个edit控件 设置字体大小CreateFont(24,0,0,0,......)

表格中的部分字体改变颜色

如何设置qt对话框标题字体

如何改变mfc对话框中的控件中的字体大小

MFC 对话框设置

MFC静态文本如何设置字体?