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中成功测试过

 

 

 

 

posted @ 2010-12-23 10:58  靓点博客  阅读(958)  评论(0编辑  收藏  举报