Windows SDK 实现XP风格两种方法
1、在头文件中包括如下:
#include "commctrl.h"
#pragma comment(lib, "comctl32.lib")
//comctl32.lib的简单介绍可以看看或MSDN Windows SDK中的标准控件和通用控件,使用xp样式也必须加入
2、在程序开始加入初始化代码如下:
InitCommonControls();
或
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
InitCtrls.dwICC = ICC_WIN95_CLASSES;//ICC_WIN95_CLASSES为要注册的控件标识,具体可查看MSDN
InitCommonControlsEx(&InitCtrls);
3、接下来步骤有两种方法
(1)第一种,这种方法最简单。如果你是使用VC2005/2008/2010版本的VC,那么你可以使用以下方法将,以下代码加入工程文件中即可
#pragma comment(linker,"/manifestdependency:/"type='win32' name='Microsoft.Windows.Common-
Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df'
language='*'/"")
(2)第二种,这种方式比较常用,满互联网的介绍
1.复制下面代码新建一个文件名字为xp.manifest放在工程目录下,文件内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
2.接下来以代码方式或用记事本打开rc文件, 加入如下句子
1 RT_MANIFEST "xp.manifest"
//也可以写成1 24 "xp.manifest" RT_MANIFEST在WinUser.h定义中就是24
3.将xp.manifest加入工程中,这个很重要,虽然不加可以编译但是不然没有效果
以上两个方法,在VC2008,VC2010中成功测试过