首先,我必须说明一下:以下说的XP风格程序并非可以运行在任何Win32平台上,而是在Windows XP下运行的。有的朋友可就纳闷了,任何在Windows XP下运行都有XP风格嘛,为何要花功夫去“实现”。
因为微软为Windows XP提供了Themes服务。Themes可以让程序具有“XP风格”,看起来更美观,因为微软更新了Comctl32.dll(ver 6.0)这个“XP风格”的控件。微软还为了保留传统的Windows界面风格,特地留下了Comctl32dll v5.8。有些朋友一定知道在VC7中建立MFC工程,程序会自动引入XP风格。VC6或者其他编译器呢?其实原理都一样的。首先建立一个文件,名为“.manifest”(是任何字符,manifest是扩展名。)
用文本输入以下内容
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity processorArchitecture="x86" version="1.0.0.0" type="win32"
name="yourapplication.exe"/>
<description>descrptions</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
保存以后,在编译器中导入此文件。资源类型是24(其实就是RT_MANIFEST),ID是1(必须)。若不能正常运行,请添加以下代码。
#pragma comment(lib,"comctl32.lib")
#include < commctrl.h>
//…在初始化处加上…
InitCommonControls
然后编译则大功告成!