三种方法实例XP风格按钮(CXPButton类、manifest实现)

 

方法一:利用XPButton类实现

具体操作步骤如下:

1.从互联网上下载XPButton类;

2.创建基于对话框的MFC工程Test,将下载的XPButton.cpp和XPButton.h放到当前工程目录中,通过Project->Add to project->Add file to project将XPButton.cpp和XPButton.h导入到工程中;

3.在CTestDlg.h添加头文件 #include "XPButton.h";

4.关闭工程,将工程目录下的.clw文件删除,重新打开工程,为对话框添加一个按钮。通过类向导为此按钮控件添加一个变量,变量类型选择CXPButton;

(在此步骤中如果不删除.clw文件,则在选择变量类型的时候下拉列表中不会出现CXPButton选项,可以选择CButton,然后手动到CTestDlg.h中将变量类型修改为CXPButton).

5.编译并运行程序就看到有XP风格的按钮;

注意:此方法只能使关联了CXPButton变量的按钮具有XP风格,对于没有关联的按钮还保持原来的样式。

 

方法二:利用.manifest文件实现

关于让程序界面实现XP风格,在网上有很多方法,大多数的作法都是写一个.manifest文件,然后将文件名改一下,比如.exe文件为test.exe,就将这个.manifest文件改名成test.exe.manifest,并将其和test.exe放在同一个目录里,这样test.exe在XP下运行时就会呈现XP界面风格。

把一下内容复制到.txt中,然后把txt改名为 “程序名.manifest”就可以了。

 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>       

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">      

<assemblyIdentity      

name="XP style manifest"      

processorArchitecture="x86"      

version="1.0.0.0"      

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>   

 

方法三:利用.manifest文件实现

虽然方法二可以实现XP按钮风格,但是.exe和.manifest文件必须在同一个目录下,还是有些不方便。我们可以把.manifest文件编译到资源文件中,编译后生成.res文件,link后自然就和.exe文件“合”到一起了。

首先把XPStyle.manifest文件复制到工程所在的目录中,再用记事本打开资源文件(.rc),在文件最后加上一行:1 24 “XPStyle.manifest”。

( 这里解释一下,最后加上的那一行,“1”代表资源ID,必须是“1”。“24”代表资源类型为RT_MANIFEST的资源,引号里面的是要加入的资源名称)

编译并运行工程,就可以看到XP风格的按钮效果了。

 

这回编译好的.exe文件拿到哪都是XP风格的界面,不再依靠.manifest文件了,并且对于所有控件都可以实现XP风格。当然了,必须在XP或2003系统下才可以。

展开阅读全文

没有更多推荐了,返回首页