Office Com加载项,对话框没有Luna/Aero主题(它们看起来像Windows 98 Classic外观)

StackOverflow https://stackoverflow.com/questions/4736613

我有一个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加载

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top