首先看一下xp风格与非xp风格:
非xp风格 xp风格
------------------------------------------------------------------------------------------------------------
有三种方法。
法一(推荐):采用Unicode工程,在属性的manifest tool里设置,或者直接在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
法二:
首先在RES目录下建一个文件,命名Master.manifest然后用记事本打开放入
<?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="Microsoft.Windows.dummy"
type="win32"
/>
<description>Your app description here</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
并保存。然后在VS中导入资源,把这个新建的文件导入,类型为24,保存。用记事本打开rc文件, 找到自定义资源的地方改成如下句子
IDR_MANIFEST 24 MOVEABLE PURE "res//Master.manifest"
并保存之。再在VS中, 把这个自定义资源IDR_MANIFEST的ID改为1(没有引号)即可。
法三:
<?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="Microsoft.Windows.dummy"
type="win32"
/>
<description>Your app description here</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
将上述代码保存为*.txt文件;
假设在目录c:/11下有一个可执行文件ab.exe,把刚才建立的文件拷贝到c:/11下,并把名字改为ab.exe.manifest,这时候运行ab.exe,已经具有了XP风格了。依次类推,在每一个想改为XP风格的程序的统一目录里建立一个上面说的文件,并把名字改为可执行文件的名字加上".manifest"的扩展名,注意,不要把那个exe去掉,就可以了。
【参考资料 感谢作者】
1、在vc MFC下制作具有XP风格按钮等控件
快捷操作:
坚其志,苦其心,劳其力,事无大小,必有所成。
@如有侵权,请作者本人尽快与我(chrayo#163.com)联系,我将及时删除侵权内容。