在VC2005环境用向导生成框架代码时默认使用Unicode字符集,编译出来的程序运行时就具有了XP风格界面,但有时必须使用"多字节字符集",当设置成使用"多字节字符集"后,编译后的执行程序就不具有XP外观(不要问我为什么,我也想知道Microsoft为何要这样做:()。这让我郁闷了几个小时,网上查找解决方法,通常采用增加资源文件的方法,我验证过用下面方法比较简单,编辑一个XXX.manifest文件,XXX可以任意取名,.manifest文件的内容如下:
-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
-
<assemblyIdentity
-
name= "XP style manifest"
-
processorArchitecture= "x86"
-
version= "1.0.0.0"
-
type= "win32" />
-
<dependency>
-
<dependentAssembly>
-
<assemblyIdentity
-
type= "win32"
-
name= "Microsoft.Windows.Common-Controls"
-
version= "6.0.0.0"
-
processorArchitecture= "x86"
-
publicKeyToken= "6595b64144ccf1df"
-
language= "*"
-
/>
-
</dependentAssembly>
-
</dependency>
-
</assembly>
在解决方案资源管理器中右击项目名称——添加——现有项,把.manifest文件添加进项目,重新编译,运行,呵呵,恢复了XP风格界面。上面方法同样可以达到使程序具有XP风格,同时也无需把.manifest与exe文件一起发布。