存档

文章标签 ‘MFC’

COM组件里面的对话框,使用Theme

2009年3月22日 魏 拾俊 没有评论

使用VC2005开发COM组件,里面的对话框,正常情况下,可以使用Theme,但是在IE里面调用的时候,却无法正常显示Theme。

搜索了一些资料,发现理论上只要在stdafx.h里面最开始,增加下面的一行就可以了

#define    ISOLATION_AWARE_ENABLED        1

但是我测试了很多次,发现不行,最终找到原因:

VC2005的MFC DLL,已经默认生成了manifest文件,但是内容不符合要求。

<?xml version=’1.0′ encoding=’UTF-8′ standalone=’yes’?>
<assembly xmlns=’urn:schemas-microsoft-com:asm.v1′ manifestVersion=’1.0′>
</assembly>

没有指定comctrls版本。

因此,自己编写一个manifest,放在vcproject文件目录里面,内容如下:

<?xml version=’1.0′ encoding=’utf-8′ standalone=’yes’?>

<assembly xmlns=’urn:schemas-microsoft-com:asm.v1′ manifestVersion=’1.0′>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type=”win32″ name=”Microsoft.Windows.Common-Controls” version=”6.0.0.0″ processorArchitecture=”X86″ publicKeyToken=”6595b64144ccf1df” language=”*” />
    </dependentAssembly>
  </dependency>
</assembly>

然后在project属性里面,找到Manifest Tool->Input and Output,修改Additional Manifest Files,写上这个文件名,例如:./CyberArticleIE.ex.manifest (Debug/Release都要更改)。

重新编译工程,就可以正常显示Theme了。

分类: 程序设计 标签: , , ,