求MFC高人 MFC中怎么样设置字体颜色

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求MFC高人 MFC中怎么样设置字体颜色相关的知识,希望对你有一定的参考价值。

那个在编辑框控件里设置文字颜色

IDE:VS2010
想只是初始化的时候只改变一次编辑框的字体颜色吗?
1.新建一个基于对话框的程序、
2.添加一个edit控件,id为IDC_EDIT_DEMO
3.在CXXXDlg类向导中添加一个WM_CTLCOLOR响应函数、写下下面的代码:
HBRUSH CChangeColor_EditDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)

HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何特性
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
if (IDC_EDIT_DEMO==pWnd->GetDlgCtrlID())//判断正在绘制的是不是指定的控件

pDC->SetTextColor(RGB(255,0,0));//设置他的文本显示
return hbr;

return hbr;

还有一种是一个可以使用CColorDialog类来操作颜色的。。。
你研究研究
参考技术A 点击进去mfc的onpaint事件,可以看到他的一个参数 dc。
像这样操作
dc.SetTextColor(RGB(255,0,0));
dc.TextOut(0,0,L"你好啊");
这样就输出了红色字体。
RGB(x,y,z)是红绿蓝三个颜色分量,取值范围为0-255.不同的组合输出不同的颜色。
建议你自己尝试。追问

那个在编辑框控件里设置颜色

参考技术B 在CDC中SetTextColor追问

能不能具体些了 最好一个函数搞定的

在 MFC 中运行时更改编辑框属性

【中文标题】在 MFC 中运行时更改编辑框属性【英文标题】:Change Edit Box Properties at Runtime in MFC 【发布时间】:2013-02-18 11:01:43 【问题描述】:

在我的应用程序中,我必须在运行时更改编辑框的字体、字体大小、背景颜色属性。当用户选择特定字体时,它的颜色应该会更新并在编辑框中可见。我正在尝试通过使用 CColorDialog 、 CFontDialog 来做到这一点。有什么有效的方法吗???我可以使用 Visual Studio 环境中的属性栏来更改设置,我们曾经在开发环境中更改属性。

【问题讨论】:

【参考方案1】:

您可以在以 CEdit 作为父类的类中捕获 WM_CTLCOLOR 消息,然后将 CDC 对象更改为您的内容。 例如:

HBRUSH CMyEdit::CtlColor(CDC* pDC, UINT nCtlColor) 

    HBRUSH hBrush;
    hBrush = (HBRUSH)m_myBrush; // An handle on a brush which was created with your background color for the edit
    pDC->SetBkColor(RGB(0, 0, 0)); // Color for the text background
    pDC->SetTextColor(RGB(255, 255, 255)); // Color for the text

    // More changes on the pDC like changing the font, etc...
    return hBrush;

【讨论】:

以上是关于求MFC高人 MFC中怎么样设置字体颜色的主要内容,如果未能解决你的问题,请参考以下文章

MFC中如何改变编辑框内字体颜色……

MFC 请教怎样设置STATIC TEXT控件的字体大小和颜色

MFC 请教怎样设置STATIC TEXT控件的字体大小和颜色

VC/MFC怎么改变状态栏字体颜色和大小

MFC设置静态文本框,编辑框等控件背景和字体颜色

mfc怎么修改静态文本控件文字颜色