更改function区button的文本颜色

我在VS2013-15有一个问题,我的button的字体颜色是灰色而不是黑色。

以下是当前button的样子: 在这里输入图像说明

有些文字在盘旋时似乎变成所需的颜色。 但是,有些甚至在盘旋时也不会改变:

在这里输入图像说明

任何帮助将不胜感激。 谢谢。

Solutions Collecting From Web of "更改function区button的文本颜色"

我设法使用巴马克的答案来解决这个问题。 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));