让 VB6 开发的程序拥有视觉样式( XP 风格),VC++6.0 同样适用
2014-05-19 16:58
519 查看
原文地址:http://hi.baidu.com/hammerc/item/ed1e32ec6090e3d0ea34c9ad
相信用 VB6 或 VC6 开发过程序的朋友都曾郁闷过吧,VB6 或 VC6 做的程序都没有视觉样式(XP风格),毕竟是 98 年的产品了!很老了。笔者也因此改用 VB2005,可以直接编写出拥有视觉样式(XP风格)的程序。但是 VB2005 编写的小程序占用近 10MB 的内存不说,还得事先安装 .NET Framework2.0 才能运行。当然最后把我逼疯的是它开发的程序第一次运行需要等上5 秒多钟!最后笔者重操旧业,又用起了 VB6 和 VC6。
上图为 VB6 开发的一个程序。纵观整个程序,也只有 text 和 list 两个控件里的滚动条启用了视觉样式(XP风格)。
通过最近在网上搜索的资料和自己的摸索,笔者总结了三个方法让 VB6 或 VC6 开发的程序拥有视觉样式( XP 风格):
●方法一:使用 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="vbAccelerator.XPStylesTester.XPStylesTester"
type="win32"
/>
<description>VB code converter.</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
保存后将文本文件名改为 程序名加上.exe.Manifest 。比如上图的程序名为 工程1.exe ,就将文本文件名改为 工程1.exe.Manifest 。接下来运行程序看看。哈哈,成功了!
缺点,文件分离且要改名,麻烦。而且相信大家也发现了(只是 VB6 开发的程序会出现这个问题),一些控件在Frame控件内显示会发生错误,解决方法是在Frame控件内拖入一个PictureBox控件,并将显示风格BorderStyle设置为0-None。而且CommandButton、CheckBox、OptionButton控件将不会显示自定义颜色。还有Common Controls 5.0控件可以使用XP样式,Common Controls 6.0控件不行。
●方法二:将信息嵌入程序的资源文件中。
这是最搞笑也是最麻烦的做法而且只适用于 VB6,所以我没做过,就把别人的方法直接写下来了哈。
在第一个加载的窗体中声明和引用下面这个API过程。
Private Declare Sub InitCommonControls Lib "comctl32.dll" ()
Private Sub Form_Initialize()
InitCommonControls
End Sub
这样就可以调用XP风格了。打开资源文件管理器,不过我还是建议你使用第三方的RES资源管理器。打开我们刚才的文件,将其资源ID号更改为24,将文件号更改为1,编译程序,完成!
●方法三:使用eXeScope。
这是我无意间发现的,而且效果很好,即简单又能弥补方法一的缺点。这种方法要用到eXeScope这个软件,可以去网上下载,这儿我提供一个下载地址:www.duote.com/soft/3533.html。安装好eXeScope后,打开eXeScope,选择文件->打开,打开你的程序。这儿先做好你的程序的备份哦。打开后,再选择编辑->XP样式,在对话框中确定。退出eXeScope。
运行程序看看,不用我多说了吧,呵呵
![](http://img.baidu.com/hi/face/i_f02.gif)
。
相关文章推荐
- VC++6.0 程序使用XP风格样式
- VC++6.0 程序使用XP风格样式
- VC++6.0 程序使用XP风格样式
- VC++6.0 程序使用XP风格样式
- Win32开发First of All:如何在Win32程序中使用XP风格(vista)的按钮?
- 关于使Visual Studio 2005/2008开发的程序具有XP风格的问题
- 如何使你的MFC程序拥有XP风格
- 如何让VC++6.0程序具有XP风格
- 如何使得.Net程序具有XP控件的样式风格
- 关于使Visual Studio 2005/2008/2010开发的MFC程序具有XP风格的问题
- 让程序拥有xp的风格
- 不使用unicode 使程序界面具有XP风格 VS2008也适用如下方法
- 使Windows程序拥有XP风格的界面,不使用皮肤控件
- 【搬运】VB6实现XP风格控件样式
- 关于使Visual Studio 2005/2008开发的MFC程序具有XP风格的问题
- 让程序拥有XP风格
- 让VC6.0编译出来的程序支持XP样式或XP风格
- 在VC6中编写可在XP中显示XP风格界面的程序
- 轻而易举拥有xp风格的界面
- 在C++Builder中使用XP视觉样式