gpt4 book ai didi

c++ - 更改功能区按钮的文本颜色

转载 作者:行者123 更新时间:2023-11-30 05:33:41 25 4
gpt4 key购买 nike

我在 VS2013-15 中遇到问题,我的按钮字体颜色是灰色而不是黑色。

这是按钮目前的样子: enter image description here

有些文本在悬停时似乎会变成所需的颜色。但是,有些即使悬停也不会改变:

enter image description here

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

我设法使用 Barmak 的回答修复了它。 Windows 7 主题是问题所在。

要修复,您有 2 个选择。

选项 1


更改程序使用的主题

这是一个懒惰的解决方法。只需将您的可视化管理器从 CMFCVisualManagerWindows7 切换到其他可视化管理器之一即可。


选项 2


覆盖 OnUpdateSystemColors() 函数

首先,您需要一个继承 CMFCVisualManagerWindows7 的新类:

class Win7VM : public CMFCVisualManagerWindows7
{

};

然后您需要调用 DECLARE_DYNCREATE,因为该对象是在运行时动态创建的。

class Win7VM : public CMFCVisualManagerWindows7
{
DECLARE_DYNCREATE(Win7VM);
};

接下来,您需要实现该类。

class Win7VM : public CMFCVisualManagerWindows7
{
DECLARE_DYNCREATE(Win7VM)

virtual void OnUpdateSystemColors()
{
CMFCVisualManagerWindows7::OnUpdateSystemColors();
m_clrRibbonPanelCaptionText = RGB(0, 0, 0);
}
};

之后,您需要在全局范围内调用与您的类实现分开的IMPLEMENT_DYNCREATE

IMPLEMENT_DYNCREATE(Win7VM, CMFCVisualManagerWindows7);

最后,我们需要将 CMFCVisualManagerWindows7 的用法更改为新类的用法:

CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(Win7VM));

关于c++ - 更改功能区按钮的文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34617320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com