MFC 控件具有XP风格


vc和vs2003上:

转载:http://hi.baidu.com/xyooo/blog/item/b380fe166ff8d81d962b43ac.html

如果你想让VS6, VS2003,的MFC程序拥有XP风格那么就学习下面的方法吧

方法一: 
1.首先确认你在Windows XP下,因为如果在98或2K下,那除非自己重画画所有界面,要不基本上是无法实现XP风格的。

Code:

<?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="Microsoft.Windows.dummy"
type="win32" 
/> 
<description>Your app description here</description> 
<dependency> 
<dependentAssembly> 
<assemblyIdentity 
type="win32" 
name="Microsoft.Windows.Common-Controls" 
version="6.0.0.0" 
processorArchitecture="X86" 
publicKeyToken="6595b64144ccf1df" 
language="*" 
/> 
</dependentAssembly> 
</dependency> 
</assembly>


不要问我这段代码是什么意思,我也不知道,这段代码其实和任何一种试图实现XP风格时用的XML代码没有本质区别,几乎是一样的。粘贴进去时候存盘,名字随便取一个,反正到后面还是需要修改的。 

3.假设在你的目录c:\abc下有一个可执行文件abc.exe,我们把刚才建立的那个XML的文件拷贝到c:\abc下,并把名字改为 abc.exe.manifest,这时候你可以运行abc.exe,看看是不是已经具有了XP风格了?依次类推,在每一个你想改为XP风格的程序的统一 目录里建立一个上面说的XML文件,并把名字改为可执行文件的名字加上".manifest"的扩展名(注意,不要把那个exe去掉,就可以了,你可以试 着在MSDEV.exe所在目录中搞一个medev.exe.manifest的XML文件,看看VC起了什么变化吧




vs2003和vs2005上:

转载:http://hi.baidu.com/xyooo/blog/item/b380fe166ff8d81d962b43ac.html

在VS 2003 环境中
1.在工程的目录下建一个名为 xpapp.manifest的文件. 把下面的内容拷到这个文件中:
<?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="Microsoft.Windows.ViPod"
    type="win32" 
/> 
<description>Your app description here</description> 
<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文件打开, 加上这样一句话(注意要加上#endif前):

//这名话是告诉工程使用刚才我们创建的那个文件,使程序界面变成XP风格
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "xpapp.manifest"


3.在工程的C*App文件中加上
#pragma comment(lib, "ComCtl32.lib")      //3步是选做

4.如果你的代码是用V6的向导生成的,那必须将工程转成vc.net下,然后在C*App的InitInstance()最开始出加上
InitCommonControls();这个函数,V6的向导不会自动添加这个函数.
//4步是选做


如果是VS 2005 则有所不同
VS 2005中,如果Project->Property  -- General -- Character Set 为Use Unicode Character Set,那么程序的界面自然就是XP风格,不需要手动添加任何东西。但是如果这里是Use Multi-Byte Character Set,那么就要自己动手加东西了,和上面操作差不多。

1、建一个名为XPStyle.manifest的文件
2、把下面的内容拷到这个文件中
<?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="Microsoft.Windows.WorkSapceName"
      type="win32" 
/>
  <description>Your app description here</description>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity 
          type="win32" 
          name="Microsoft.Windows.Common-Controls" 
          version="6.0.0.0" 
          processorArchitecture="X86" 
          publicKeyToken="6595b64144ccf1df" 
          language="*" 
        />
    </dependentAssembly>
  </dependency>
</assembly>

3、Project->Add Existing Item...将XPStyle.manifest添加到工程中。

4、打开工程中的Resource.h文件,加上:
#define IDR_MANIFEST  1 
#define RT_MANIFEST 24 


5、将工程的res\*.rc2文件打开, 加上:
// Add manually edited resources here...
IDR_MANIFEST RT_MANIFEST MOVEABLE PURE   "res\\XPStyle.manifest"


6、Rebuild.....就可以了。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值