首先在RES目录下建一个文件,命名 windows.manifest 后缀为:.manifest
然后用记事本打开放入
1 < ?xml version="1.0" encoding="UTF-8" standalone="yes"?> 2 < assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 3 < assemblyIdentity 4 name="Microsoft.Windows.XXXX" 5 processorArchitecture="x86" 6 version="5.1.0.0" 7 type="win32"/> 8 < description>Windows Shell</description> 9 < dependency> 10 <dependentAssembly> 11 <assemblyIdentity 12 type="win32" 13 name="Microsoft.Windows.Common-Controls" 14 version="6.0.0.0" 15 processorArchitecture="x86" 16 publicKeyToken="6595b64144ccf1df" 17 language="*" 18 /> 19 </dependentAssembly> 20 < /dependency> 21 < /assembly>
然后导入资源,把文件windows.manifest添加到工程的资源中:
插入->资源->引入->文件类型改为“所有文件"->找到windows.manifest->弹出对话框
资源类型 填"24"->确定后(弹出一堆象乱码一样的东西,汗!!)
再把资源的ID改为"IDR_MANIFEST"
然后在String Table中添加IDR_MANIFEST,值为1
重新生成编译运行
你的
程序就有了XP/Win7的风格
有时会出现一个这样的错误:
fatal error CVT1100: 重复的资源。type:MANIFEST, name:1, language:0x0409
解决方法:
1>CVTRES : fatal error CVT1100: 重复的资源。type:MANIFEST, name:1, language:0x0409
1>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
加入了MANIFEST资源,同时将应用程序语言从中文改成了英文,结果出现了上面的问题。中文时,不存在这个问题。
错误信息显示,重复链接了MANIFEST资源。无论怎么改动.rc文件,都没法避免这个错误,只能使用兼容处理的方式。
解决方法:项目——属性——清单工具,嵌入清单——否
重新编译,OK!