VC实现XP风格控件效果(转)
2013-10-25 09:30
267 查看
VC实现XP风格控件效果
C&C++ 2008-02-15 21:28:25 阅读262 评论2 字号:大中小 订阅
一个小窍门可以方便的在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="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>
再次编译执行你的程序,完工!
转自: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"改为[b]version="6.0.7600.16661"[/b] 即可,请看下图:
参考:http://social.msdn.microsoft.com/Forums/zh-CN/vcgeneral/thread/fa445e3a-b8ce-4126-b0e7-959d26538029
---2011/5/19修订
C&C++ 2008-02-15 21:28:25 阅读262 评论2 字号:大中小 订阅
一个小窍门可以方便的在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="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>
再次编译执行你的程序,完工!
转自: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"改为[b]version="6.0.7600.16661"[/b] 即可,请看下图:
参考:http://social.msdn.microsoft.com/Forums/zh-CN/vcgeneral/thread/fa445e3a-b8ce-4126-b0e7-959d26538029
---2011/5/19修订
相关文章推荐
- VC实现XP风格控件效果
- VC6实现XP风格的控件效果(和VC2005一样)
- VC 中实现 XP 风格的控件,简单实用的方法包你满意!
- vc 实现xp风格控件
- VC++ 6.0 XP风格的实现
- VC无负担实现XP风格界面
- VC无负担实现XP风格界面
- VC6 轻松实现 xp 样式控件
- 【转】VC2008在工具栏Toolbar里添加XP风格spin box control控件
- VC无负担实现XP风格界面 [转]
- 用VB实现带图片的XP风格的按钮控件
- [转]在vc MFC下制作具有XP风格按钮等控件
- 程序中控件实现随xp风格的改变而改变
- VC中实现界面XP风格
- VC皮肤以及XP风格实现
- VC实现XP风格界面
- [学习]VC实现xp风格
- VC无负担实现XP风格界面
- VC无负担实现XP风格界面 选择自 goodname008 的 Blog
- 让在vc6创建的程序中,控件可以随xp风格的改变而变化,不用再程序中添加代码来自己实现~