您的位置:首页 > 其它

如何使得WIN7下用VS2010做出的MFC程序具有XP风格(摆脱传统界面的效果)

2011-08-11 19:25 1031 查看
VS2010建一个MFC的工程后,运行生成的对话框还有按钮之类的资源控件的风格是XP以前的传统的界面风格,效果不太令人满意。





比较上面的图片,可以明显看到它们的不同。要怎么做呢?

1. 将下面这段XML保存到你的工程目录下,文件名为XPStyle.manifest(注意后缀不是xml)

<?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="XP style manifest"

type="Win32"

/>

<dependency>

<dependentAssembly>

<assemblyIdentity

type="Win32"

name="Microsoft.Windows.Common-Controls"

version="6.0.0.0"

processorArchitecture="X86"

publicKeyToken="6595b64144ccf1df"

language="*"

/>

</dependentAssembly>

</dependency>

</assembly>

2. 在VC中点添加资源, 将XPStyle.manifest文件作为资源文件加入到你的工程中,

填资源类型号为24或者RT_MANIFEST(这是因为manifest格式文件不是VC的常规资源文件), 自己设定一个资源ID,比如说IDR_XP_STYLE或者1都可以.



(1).如果是dll工程,则在Resource.h中修改:

#define IDR_XP_STYLE 2

并在StdAfx.h中添加

#define ISOLATION_AWARE_ENABLED 1

(2).如果是exe工程,则在Resource.h中修改:(自己没有做这一步,发现并无影响)

#define IDR_XP_STYLE 1

3. 点击全部编译,运行你的程序看看.

(友情提示: 编译出来的程序在非XP系统下没有XP风格界面,将是传统的界面效果)

使用.manifest文件不费任何力气就可以在xp系统里实现xp风格的控件,但是这样做有一点不方便的地方就是manifest必须放到exe所在目录,如下做法可以将manifest文件放到资源文件中,编译后生成.res文件,link后自然就和.exe文件“合”到一起了。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: