vc2008 界面使用XP风格

网上大概有三种方法可以实现

1、最简单办法

   在Stdafx.h文件中加入以下内容即可

        #pragma comment(linker,"/manifestdependency:/"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'/"")

 

如编译其它架构,请参考以下代码:

 

如果没有效果请检查

Linker->General->Enable Incremental Linking把它设置为"Yes(/INCREMENTAL)"

 

2、需要在EXE运行目录添加以下内容的 abc.exe.manifest abc为你的应用程序名称

 

   <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly
   xmlns="urn:schemas-microsoft-com:asm.v1"
   manifestVersion="1.0">
<assemblyIdentity
    processorArchitecture="x86"
    version="5.1.0.0"
    type="win32"
    name="abc.exe"/>
    <description>Test Application</description>
    <dependency>
    <dependentAssembly>
    <assemblyIdentity
         type="win32"
         name="Microsoft.Windows.Common-Controls"
         version="6.0.0.0"
         publicKeyToken="6595b64144ccf1df"
         language="*"
         processorArchitecture="x86"/>
    </dependentAssembly>
    </dependency>
</assembly>

 

其中的 name="abc.exe"/> 为你当前的应用程序名称

 

(此方法支持VC6版本)

 

3、首先,在程序的RES目录下建一个文件,命名 你的程序.exe.embed.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.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>

 

 

然后,在VC中导入资源,导入xp.manifest,类型为24,并且修改ID为IDR_MANIFEST。
最后,通过菜单View-Resources Symbol …或者直接修改resource.h,将IDR_MANIFEST的值改为1。

编译后运行,程序就有xp的风格了。

 

PS:这里我再多解释一下,“1”代表资源ID,可以可以根据自己的上下文定值。“24”代表资源类型,我想我们对RT_ACCELERATOR、RT_BITMAP、RT_MENU、RT_STRING等资源都非常熟悉,而“24”实际上是RT_MANIFEST。

 

 

 

01#ifdef _UNICODE
02#if defined _M_IX86
03#pragma comment(linker,"/manifestdependency:/"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'/"")
04#elif defined _M_IA64
05#pragma comment(linker,"/manifestdependency:/"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'/"")
06#elif defined _M_X64
07#pragma comment(linker,"/manifestdependency:/"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'/"")
08#else
09#pragma comment(linker,"/manifestdependency:/"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'/"")
10#endif
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值