Colors 了解在Office 2007样式中使用MFC功能包时使用的颜色 我更新了一些传统的C++代码,使用微软为VisualStudio 2008发布的“MFC功能包”。我们已经使用新类从CFrameWndEx派生了我们的应用程序,并且正在应用Office2007样式,以使我们的应用程序具有更现代的外观。这为我们提供了渐变填充的窗口标题、状态栏等,以及功能区工具栏的使用

Colors 了解在Office 2007样式中使用MFC功能包时使用的颜色 我更新了一些传统的C++代码,使用微软为VisualStudio 2008发布的“MFC功能包”。我们已经使用新类从CFrameWndEx派生了我们的应用程序,并且正在应用Office2007样式,以使我们的应用程序具有更现代的外观。这为我们提供了渐变填充的窗口标题、状态栏等,以及功能区工具栏的使用,colors,mfc-feature-pack,Colors,Mfc Feature Pack,但是,我们的应用程序包含一些所有者绘制的控件,我想更新这些控件以匹配功能包使用的颜色方案。理想情况下,我想知道当前使用的灯光和阴影工具栏颜色 我已经在文档和网络上搜寻过了,但还没有找到任何东西。有人知道如何找到这些信息吗 [编辑] 特别是,我们需要找出运行时使用的颜色。您可以使用新的静态函数CMFCVisualManager::SetDefaultManager在运行时更改应用程序的外观 以下msdn页面显示了可用的样式,特别是Office2007外观: 您是否尝试过: ?您是否查看过MFC源代

但是,我们的应用程序包含一些所有者绘制的控件,我想更新这些控件以匹配功能包使用的颜色方案。理想情况下,我想知道当前使用的灯光和阴影工具栏颜色

我已经在文档和网络上搜寻过了,但还没有找到任何东西。有人知道如何找到这些信息吗

[编辑]

特别是,我们需要找出运行时使用的颜色。您可以使用新的静态函数CMFCVisualManager::SetDefaultManager在运行时更改应用程序的外观

以下msdn页面显示了可用的样式,特别是Office2007外观: 您是否尝试过:

您是否查看过MFC源代码,您可以在类似


C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\src\mfc

我想您可以使用您喜爱的图像编辑器从屏幕抓取中选择颜色。

“我想您可以使用您喜爱的图像编辑器从屏幕抓取中选择颜色。”


这基本上就是我现在正在做的,我定义了一个常量列表,从中提取颜色。但看起来不太优雅

看起来CMFCVisualManager提供了几种获取颜色信息的方法,例如

CMFCVisualManager::GetSmartDockingBaseGuideColors()
CMFCVisualManager::GetToolbarHighlightColor()

看看CMFCVisualManager的MSDN文档。

@GateKiller,OP并没有开发Office 2007插件,因此UI指南并没有真正的帮助。这是一个使用的MFC应用程序,它允许MFC应用程序采用Office2007的外观


看起来CMFCVisualManager提供了几种获取颜色信息的方法,例如

CMFCVisualManager::GetSmartDockingBaseGuideColors()
CMFCVisualManager::GetToolbarHighlightColor()
CMFCVisualManager::GetSmartDockingBaseGuideColors() CMFCVisualManager::GetToolbarHighlightColor()

查看CMFCVisualManager的MSDN文档

很好的建议,但不幸的是,当当前我使用样式CMFCVisualManagerofice2007::Office2007_LunaBlue运行应用程序时,它们只返回各种灰色

令人恼火的是,msdn帮助“正在建设中”,所以甚至没有告诉你他们应该做什么

很好的建议,但不幸的是,当当前我使用样式CMFCVisualManagerofice2007::Office2007_LunaBlue运行应用程序时,它们只返回各种灰色

CMFCVisualManagerofice2007::GetTabFrameColor-clrFace输出参数为灰色


也许它们都是在每个主题的单一基础色调之上的面具?假设您可以使用CMFCVisualManagerofice2007::GetStyle()确定哪个配色方案有效,那么您可能可以确定该色调是什么,然后使用GetxxxColor()方法进行一些遮罩。

afxGlobalData
包含一些关于当前颜色的有用信息,MFC功能包使用的笔刷和字体。在绘制自己的控制栏背景时,我特别使用了
afxGlobalData.m_clrBarFace

(请注意,我不在我的工作电脑前,因此上面的语法不正确。)