打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何让VB程序穿上漂亮外衣 — Windows Live

如何让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="Microsoft.Windows.Common-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.有段时间没更新,这次写的比较学术了一点,请多包涵啦。周末预告,有重大更新哦!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
我们为什么需要调用InitCommonControls?
XP系统优化四大步,让你的电脑飞速
电脑操作的技巧与窍门(包括组合键,设定技巧等)超全面!
电脑开机启动慢怎么回事??
网吧xp母盘制作流程
ylmfos:安装Windows有关库和软件的小程序
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服