鱼C论坛

 找回密码
 立即注册

【win7风格控件】VC实现win7控件效果

已有 916 次阅读2013-8-30 08:41 |个人分类:小技巧

一个小窍门可以方便的在VC6、VC2003、VC2005下实现XP风格的控件效果,而且风格随主题变化而变化,没有主题则显示为原来的风格,看效果对比图:


原来的样式


改变后的样式

很简单,此方法SDK/MFC通用,简单的讲就是插入一个资源,类别为24,ID为1,以VC6为例,2003和05类似。在VC6资源编辑试图下点击Insert(插入),然后选择Custom(自定义),在Resource Type(资源类别)填上24,然后将新插入的资源属性改为如下

在右边内资源容中输入

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
       <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
       <assemblyIdentity
         name="WIN7 style manifest"
         processorArchitecture="x86"
         version="1.0.0.0"
         type="win32"/>
       <dependency>
         <dependentAssembly>
           <assemblyIdentity
             type="win32"
             name="Microsoft.Windows.Common-Controls"
             version="6.0.7600.16661"
             processorArchitecture="x86"
             publicKeyToken="6595b64144ccf1df"
             language="*"
           />
         </dependentAssembly>
       </dependency>
       </assembly>

再次编译执行你的程序,完工!

转自:http://wzoot.blog.163.com/blog/static/41638800200811592825152/

 

1. 起作用的关键所在是xpStyle.manifest文件,该文件定义了应用程序要加载哪个版本的common-controls的dll,

这里规定加载版本为version="6.0.0.0" 的dll(应该就是xp系统提供的吧~)。可以想到没有定义此文件时,它加载的该是较低版本的

common-controls的dll(显示效果很难看的那个~)。关于.manifest文件的详细介绍请看:【转】 什么是 .manifest 文件

2. 另外,因为我们直接从资源视图插入的24类型的资源(即:RT_MANIFEST),所以编译生成的exe里就包括了该文件(打开.rc可以看到:1  24  DISCARDABLE   "xpStyle.manifest"),也就是运行exe时就不再需要.manifest文件了。换句话说,如果.manifest文件是你自己比如用记事本编写的,你要手动在.rc文件中加上:1  24  DISCARDABLE   "xpStyle.manifest" 一句。参考: 将XP风格文件manifest合并到资源文件 。

------------------------------------------------------------------------------------------------------------------------------------------------------------

对于Win7效果的控件,只需把version="6.0.0.0"改为version="6.0.7600.16661" 即可,请看下图:

参考:http://social.msdn.microsoft.com/Forums/zh-CN/vcgeneral/thread/fa445e3a-b8ce-4126-b0e7-959d26538029


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-17 21:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

返回顶部