在百度或者 GOOGLE 中搜索“实现 XP 风格的控件”会出现一堆的的方法,大多是利用 manifest 文件。有一个兄弟在百度空间里介绍了三个方法,我逐个试了试,不得要领,不过大家有兴趣可以看一下(http://hi.baidu.com/luxintian/blog/item/ce81bdecd8638c2362d09fb0.html),OK了告诉我,谢谢。没有办法我只好自己试了,总结了两个可行的方法大家分享一下吧:
1. 在 VC2005 中用向导(全部默认)生成一个 MFC 工程,在 stdafx.h 文件的末尾可以找到如下语句:
#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:/"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'/"")
#elif defined _M_IA64
#pragma comment(linker,"/manifestdependency:/"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'/"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:/"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'/"")
#else
#pragma comment(linker,"/manifestdependency:/"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'/"")
#endif
#endif
这些指令会让你的界面具备XP风格,当然了,如果你的工程不是 UNICODE 字符集,把上面指令语句的最前一句和最后一句注释掉就可以了。简单吧!不过,这个方法有个缺点,就是得有一个 YourExeName.exe.manifest 文件跟你的 exe 一起发布才行。
2. 把下面代码 copy 到一个文本文件中:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="x86"
name="XPStyle manifest"
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>
然后分以下几步操作就可以了:
1) 重命名为 XPStyle.manifest (名字随便起,可以不与上面语句中 name="XPStyle manifest" 的名字一致),这个文件随便放在什么地方。
2) 开发环境中找到资源视图,右键点击 YourExeName.rc -〉“添加资源”-〉“导入”-〉选择你刚才保存的 manifest 文件打开,在弹出的对话框中的“资源类型”中,填24就可以了。
3) 编译,OK。。。