"如何让VB程序穿上漂亮外衣+—+Windows+Live"是一本介绍如何通过Windows Live平台美化和提高VB程序外观的实用指南。本书通过实际案例和详细教程,教读者如何使用Windows Live平台的设计工具、图形用户界面和样式库,为VB程序添加独特的风格和互动效果。读者将学习如何利用Windows Live平台的资源和技术,为VB程序赋予现代化的外观和用户体验,使其更加吸引人和易于使用。无论您是初学者还是有经验的开发者,本书都将帮助您提升VB程序的外观设计水平,为用户带来全新的视觉享受。
如何让VB程序穿上漂亮外衣
一直喜欢自己编一些小程序,用的IDE是Visual Basic 6.0,这个98年开发的Visual Studio6.0版IDE被沿用至今,很多程序员都很喜欢它,因此被誉为经典之作。之后微软发布的具有.NET概念的IDE作品在很长一段时间内并没有随着.NET编程架构的大力推广而火热起来。.NET架构更趋于模块化和便捷的调用方便了程序员,但是用户却不得不安装另外发布的.NETFramework运行库控件。
实际上,XP发布以后,很多用户对于XP的兴趣主要来源于新的视觉风格。但是在程序开发方面却没有很好的办法来解决对于XP视觉样式的支持问题,包括.NET。我一度也深受这个问题的困扰,正常情况下,在WindowsXP系统中,用VB6开发的应用程序只有窗口标题条具备XP风格,窗体上的按钮、文本框等控件仍然显示Windows传统风格。
WindowsXP提出了新的主题的概念不单单是壁纸、图标、颜色的差别,而是连控件都能控制的一整套视觉方案,很多Microsoft的程序都很好的继承了这一风格。而第三方呢,我也见过一些程序提出了Skin的概念,虽然界面很华丽,但是一眼看上去就是原创的控件,使用图片资源来模仿XP的风格,可能在一套主题下非常和谐,而另一套主题就会形成鲜明反差。而且程序运行时还要带上一大串aaa.dll、bbb.ocx啦,非常臃肿。
因此,我一直渴望了解,为什么XP的主题可以控制Microsoft的程序,却不能控制第三方的程序。
CSDN上的牛人给出了答案:从MSDN里的Visual Style章节知道,Windows XP通过Comctl32.dll(版本6)来加载具备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="mon-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
假设你最终编译的程序名是abc.exe,工作目录是d:\vbxp。复制上述XML内容并保存为文本文件。然后将该文件改名为abc.exe.manifest。在VB程序中,我们要在所有窗体加载之前调用InitCommonControls函数从comctl32.dll(版本6)中对组件类进行初始化。API函数InitCommonControls的声明如下:
Public Declare Sub InitCommonControls Lib "comctl32.dll" ()
初始化动作必须在所有窗体加载前完成,所以要把相关语句放到Private Sub Form_Initialize()中:
Private Sub Form_Initialize()
InitCommonControls
End Sub
编译后的abc.exe将具备XP风格,非常赞吧。
以上提及的方法不仅可以使应用程序内部的控件具备XP风格,也可以使其调用的消息框及ActiveX控件具备XP风格。但要注意,在使用工具栏、进度条等ActiveX控件时要引用Microsoft Windows Common Controls 5.0 版本(很奇怪,明明MicrosoftWindows Common Controls 6.0 版本比较高,而且XP使用的 comctl32.dll 就是 6.0的版本),否则不能使控件具备XP风格。
最后,贴一张原创的FontShow的图片吧。
下次我们来讲一讲,1、如何让VB 6.0的IDE也具有所见即所得的XP风格开发环境;2、如何让程序保持简洁,只需要一个 aaa.exe 而甩掉那个烦人的 aaa.manifest 文件,对于单文件的小工具有显而易见的好处哦。
P.S.有段时间没更新,这次写的比较学术了一点,请多包涵啦。周末预告,有重大更新哦!
收集不易,本文《如何让VB程序穿上漂亮外衣 — Windows Live》知识如果对你有帮助,请点赞收藏并留下你的评论。