VB6编程实现XP风格
来源:互联网 发布:2015网络剧 编辑:程序博客网 时间:2024/06/05 20:16
VB6编程实现XP风格
有 Windows XP系统后,网上就开始讨论VB6编程实现XP风格。我在编写《股票管理大师》时,在网上收集整理了两种方法。
第一种方法是用manifest文件实现XP风格
用VB6开发的应用程序在Windows XP系统中运行时,只有窗口标题条具备XP风格,窗体上的按钮、文本框等控件仍然显示Windows传统风格。如下图所示:
应用程序是通过一个XML资源文件来通知系统加载具备XP风格的组件。
XML文件的内容如下:
<?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>
下面用一个具体例子来说明用此法实现的具体步骤。
1、新建一个VB工程,将工程名称改为:“VB实现XP风格”,启动对象改为:“Sub Main”,将原来的窗体Form1的名称改为“FormVB_XP”。
将上述XML文件内容保存为文件名为“VB实现XP风格.exe.manifest”的文本文件,并将其保存在最终编译出的“VB实现XP风格.exe”文件相同的目录下。
2、添加一个模块,在该模块中输入如下代码:
Private Declare Function InitCommonControlsEx Lib "comctl32.dll" (iccex As tagInitCommonControlsEx) As Boolean
Private Type tagInitCommonControlsEx
lngSize As Long
lngICC As Long
End Type
Private Const ICC_USEREX_CLASSES = &H200
‘VB实现XP风格的初始化函数
Public Function InitCommonControlsVB() As Boolean
On Error Resume Next
Dim iccex As tagInitCommonControlsEx
With iccex
.lngSize = LenB(iccex)
.lngICC = ICC_USEREX_CLASSES
End With
InitCommonControlsEx iccex
InitCommonControlsVB = (Err.Number = 0)
On Error GoTo 0
End Function
Sub Main()
InitCommonControlsVB ‘调用初始化函数
FormVB_XP.Show
End Sub
注意初始化动作必须在所有窗体加载前完成。至此,你编译后的VB实现XP风格.exe将具备XP风格,如下图所示:
用这种方法实现XP风格存在如下不足:
1、你的应用程序总有一个manifest文件如影随形,如果这个manifest文件被破坏,XP风格也就不能实现了,VB应用程序当即原形毕露。
2、每次建立新的VB工程时,总不能忘记按照上述步骤去认真地完成,需要写一段也不算长的代码,而且必须在所有窗体调用前就调用初始化函数。
第二种方法是用资源文件实现XP风格
用资源文件实现XP风格是将manifest文件编译到资源文件中,这就克服了用上述方法的两个不足之处。采用这种方法实现XP风格简单可行,不需要写代码,只需要事先准备好一个资源文件,而且可以永久性地使用,也就是说,准备好这个资源文件后,今后新建VB工程时,只要把此资源文件添加进去即可。
因此,准备这个资源文件就是本方法的关键,具体步骤是:
1、将XML文件内容保存为文件名为:“abc.exe.manifest”。
其中的abc.exe可以随意更改,但需要注意的是,保存后要看看其文件长度,其总字节数必须能够被4整除,如果不是,你可以在文件尾加空格。
2、在abc.exe.manifest文件的相同目录下新建一个文本文件,输入如下内容:
1 24 abc.exe.manifest
保存后将文件改名为xp.rc
3、在DOS下进入VB安装目录的Wizard目录(如C:\Program Files\Microsoft Visual Studio\VB98\Wizards),在提示符处输入下行命令:
rc /r d:\vbxp\xp.rc
假设这个xp.rc文件保存的D盘的vbxp目录下。
这样,资源文件xp.res就编译好了。这个编译好的资源文件在我的资源中有下载。
最后说一下需要注意的地方。在Frame内的单选按钮运行后显示为黑色,解决方法是把它们先放入一个PictureBox内,并设置PictureBox的BorderStyle属性为2-None,然后再连同PictureBox一起剪切到一个Frame中。
- VB6编程实现XP风格
- VB6 IDE XP风格实现之见解
- VC实现xp风格
- VC 实现XP风格
- VC6 实现XP风格
- 汇编语言实现XP风格
- BCB实现XP风格
- VB编程实现XP风格之终结篇
- VC2005 实现XP的风格
- [学习]VC实现xp风格
- XP风格界面的实现
- VC实现XP风格界面
- VC2005 实现XP的风格
- vc 实现xp风格控件
- VC实现XP风格界面
- VC实现XP风格界面
- XP风格按钮的实现
- Vista下 VC编程申请UAC及XP风格的双重实现
- C语言函数
- MINA服务端与C++客户端通讯(2)
- Report 开发-简单报表
- 珈伟工作项目总结(引言)
- C语言的那些小秘密之函数指针
- VB6编程实现XP风格
- 排序题
- 工作项目总结(一)之数据库操作
- 卡特兰数 Catalan数
- jbpm4.4表结构
- 人生当立志
- 快速的批量修改重命名.net程序的命名空间
- Android开发技术之──获取网络图片
- U-Boot移植