Office Com加载项,对话框没有Luna/Aero主题(它们看起来像Windows 98 Classic外观)
题
我有一个Office 2007的Addin,该Office添加了一个工具栏,其中包括一些按钮和处理程序,用于其onClick活动。当用户单击按钮时,一些对话框显示。但是,这些对话框即使在Windows 7上也具有矩形按钮的日期Windows 98的外观和感觉。
我知道您需要一个清单文件来启用主题,但是此插件是使用Visual Studio 2008创建的,它会自动添加清单,看起来像这样:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>
我应该更改如何使我的对话使用当前主题而不是Windows 98外观?我已经阅读了有关隔离意识的信息,但这似乎也没有起作用。
解决方案
正如您发现的那样,添加清单只是战斗的一半。您还需要致电 InitCommonControlsEx
功能 当您的加载项初始化时,在创建任何控件之前。这是为您使用的通用控件注册窗口类所必需的。
如果您对文档表示怀疑,Microsoft的Raymond Chen发布了 他的博客上的文章 不久前解决此问题。
如果您还有其他问题,请检查本文: 如何将Windows XP主题应用于Office COM加载
不隶属于 StackOverflow