更改静态文本 C++ 的颜色

Posted

技术标签:

【中文标题】更改静态文本 C++ 的颜色【英文标题】:Change the color of static text C++ 【发布时间】:2019-04-06 10:20:07 【问题描述】:

我通过使用表单设计器编辑 .rc 文件为 MFC 类创建了对话框表单,如下所示,

我想更改上面 Namodaya Balaarachchi 文本字段的颜色。 但是下面的属性窗口中没有任何属性。

谁能帮我改变上面静态文本的颜色?

【问题讨论】:

这可能有用:Static Control Background Color with C++ 我试过了。但它不起作用,因为我无法调用 CALLBACK 函数。你能帮我调用CALLBACK函数吗? 【参考方案1】:

我正在使用 Visual Studio 2017 并创建一个基于对话框的 MFC 项目。之后选择“资源视图”并双击打开对话框。右键选择Class Wizard,在Message处双击WM_CTLCOLOR,选择OnCtlColor,然后Edit Code,添加下面的“switch”部分。

HBRUSH CMFCApplication1Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)

    HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);

    // TODO:  Change any attributes of the DC here
    switch (nCtlColor)
    
    case CTLCOLOR_STATIC:
        pDC->SetTextColor(RGB(255, 0, 0));
        return (HBRUSH)GetStockObject(NULL_BRUSH);
    
    // TODO:  Return a different brush if the default is not desired
    return hbr;

F5运行,文字变为红色:

【讨论】:

我认为“WM_CTLCOLOR”这样的消息应该存在于2015/2012或更早的visual studio中。

以上是关于更改静态文本 C++ 的颜色的主要内容,如果未能解决你的问题,请参考以下文章

Qt,如何更改 QComboBox 的一项的文本颜色? (C++)

如何在静态文本视觉工作室中更改背景颜色?

iOS - 表格视图 - 静态单元格(分组) - 更改部分标题文本颜色

C ++ Win32更改静态颜色[重复]

如何根据背景颜色自动更改视图的透明颜色

更改整个控制台背景颜色 (Win32 C++)