我在 VS2013-15 中遇到问题,我的按钮的字体颜色是灰色而不是黑色。
当悬停在上面时,某些文字似乎会变成所需的颜色。但是,有些人即使在盘旋时也不会改变:
非常感谢任何帮助。感谢。
答案 0 :(得分:1)
我设法使用巴马克的答案解决了这个问题。 Windows 7主题就是问题所在。
要修复,您有2个选项。
这是一个懒惰的工作。只需将您的可视化管理器从CMFCVisualManagerWindows7
切换到其他可视化管理器。
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));