说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

用VB尝试新的界面风格

HTML文档下载 WORD文档下载 PDF文档下载
用VB尝试新的界面风格
作者:宠大
随着微软Windows产品风格的不断演进,各应用软件厂商也在跟进,但经常是主流的开发工具跟不上节奏,这时往往就需要用一些辅助的工具来编制那精美的界面了。本文只是略谈一点这方面的感受,举两个小工具的例子。

用ActiveBar制作Office97风格的菜单与工具条

在微软的最新97风格(以Office97、VisualStudio97和InternetExplorer为代表)中,出现了新的菜单与工具条,它们都具有浮起效果,菜单有了图标,并且它们实际上都可以是一些独立窗口,拖到程序主窗口的最上方,便被吸了过去,成为了菜单或工具条。

ActiveBar是DataDynamics公司的产品,安装后,你可以在VB的Components中找到ActiveBarControl一项,将它添加到你的项目中,便可以使用了。这个控件的使用有点特别,在“属性”中除了颜色、字体等常规内容外,找不到什么实质性的东西,回去看看95的“开始”菜单,安装时它在那里留了一个叫ActiveBarDesigner的应用程序,可是在这个Designer里设计的界面怎么才能让VB接受呢?原来当你在VB中“画”该控件时,点击鼠标右键,会发现在Properties的位置有一项Designer,点击之,就可以在VB中以OLE嵌入的方式打开那个ActiveBarDesigner了,在这里设计的效果,在VB中Run的时候就可以看到了。

用ctListBar制作IE4的List

在微软1997年的Web产品(IE4和FrontPage98)中,使用了一种新的List,以或大或小的图标和漂亮的背景取代的白色方框里面被选的蓝色条条,并且可以在一个控件中实现几个List的功能(通过分页来实现)。

为了做出这种精美(与原先蓝白条的List相比,它确实太美了)的List,Gamesman公司开发了这个名为ctListBar的控件,将它调入你的项目,在属性的Custom项中,可以设置它的绝大部分特性,比如横竖、图标的大小、按钮的突起或凹陷、卷轴等。其中对最终的视觉效果起决定性作用的是BackImage和GradientFill,BackImage是Picture下面的属性,用来设置该List的底图(其实这个List的美丽大部分来自底图),或者更朴素一点的方法,不设底图,而是选用GradientFill(它是General里的一个可选项),它会做一个色彩渐变的效果,至于渐变的具体色彩,你可以通过在Color中指定GradColorFrom和GradColorTo来设置,这样只需要设置三个属性,你就可以得到与IE4和FrontPage98一样精美的List了。当然,所有这些属性都是可以在运行时修改的,ctListBar的帮助文件和例子程序中给出了详细的说明。

用TrayICON制作95状态栏里的图标

在Windows95中,有些应用程序需要在95的状态栏中登录一个图标,这在VC++中并不难实现,但VB中却没有提供相应的控件,为此,NikhilKothari制作了这个TrayICON控件,利用它,VB的程序员可以轻易地在95的状态栏中登录图标。

打开TrayICON附带的例子程序,看到它的几个主要特性:TrayIconl.Visible(是否在状态栏中可见)、TrayIconl.MouseMoveEvents(是否跟踪鼠标在状态栏里的移动)、TrayIconl.ToolTip(浮动的提示信息)、TrayIcon1.AutoUpdate(是否自动更新图标)和非常简明的方法:ShowICON、HideICON等,关于这些特性和方法的代码,可以在例子程序中找到,且都非常简单(看看ShowICON的代码,只是一句successΚTrayIconl.ShowIcon而已)。

有了TrayICON控件,用VB写95状态栏登录的程序再也不难了。

采用Web风格

随着Internet的日益流行,很多的软件厂商都开始尝试在应用软件中采用Web风格,我个人认为Web风格会在应用软件中逐渐流行———既然以后所有的95上都会安装浏览器(不管是IE还是Communicator),并且HTML会是最流行的超文本格式,为什么软件中的超文本不能用Web风格呢?———至少我认为Web风格的帮助会比RTF编译过去的HLP文件要灵活、美观得多。

在新的开发工具中,大多提供了现成的WebBrowser窗口例子程序(至少VB5和Delphi3是这样),VB5的用户只要在新建窗口时使用一下向导,要它建立一个Browser窗口就可以了(但是注意,这样默认的窗口是MDI子窗口,别忘了修改一下MDI属性)。如果你还在使用VB4(VB5在某些方面的BUG实在难以忍受,所以有时VB4反到显得成熟一些),是没法使用这个向导的,但这也不难,只要你安装一份前面提到的ActiveBar就可以了———它的另外一个例子程序就是一个WebBrowser,并且菜单和工具条还是Office97风格的,当然它需要微软的WebBrowser控件———不管你安装IE3和IE4,这个控件都会在VB中可用的(笔者第一次写WebBrowser就是这样写的,当时的IE3提供了WebBrowser控件,但没有任何的文档,不想在ActiveBar的例子中找到了答案)。

总之,VB程序员必须留心第三方控件(3DPartyControls)的最新发展,时时将最新的控件加入自己的程序中,这样才能跟上软件发展的最新潮流(不仅仅是界面的风格)。
三年增四倍:如今谷歌服务占北美互联网流量四分之一 决战低功耗?Intel明年推低功耗Xeon处理器 在软件架构上增加新功能的注意事项 90后的代码界“女神”李雪:在编程中找到自己的“灵魂” 大数据之路不乏荆棘,然则其中的机遇却高于一切 iPhone销量令人意外:苹果Q3财季净利69亿美元 同比下滑 励志:12位早起的IT大佬们让小伙伴们都惊呆了 独家:苹果5周年限免神作,BADLAND开发者访谈 10亿次订阅!苹果Podcast的里程碑 免费利器Unity 4.2正式发布 支持WP8、Win8和BB10 SDCC 2013:Pinterest首位中国籍工程师两场演讲议题确定 甲骨文公布中国首届“Duke选择奖”名单 Moco、X幻想、开源中国获奖 直接拿来用,10个PHP代码片段 编程的未来 数据将成为主角 OpenCL 2.0发布,带来更强悍的异构计算能力 代码审查方式大调查 辅助工具居首(信息图) 一网打尽当下NoSQL类型、适用场景及使用公司 初创公司Treasure Data:每天处理7000亿行数据的20万次查询 豌豆荚王俊煜:将推支付SDK 与开发者3:7分成 英特尔-百度移动应用测试中心(MTC)正式启动 Intel将在2014年为数据中心用户定制低功耗SoC芯片 情绪低落?没事,让计算机来帮你! 水果生意难做 前新浪架构师徐佳转行试水挖煤 思考软件开发中的快与慢 Apache CouchDB注入新鲜血液,整合分布式技术 CSS Shapes:Web设计人员的新工具 Android 4.3正式发布:四大新功能一览 史玉柱的创业经验谈 3G门户和GO桌面:海外推广的生意经 系统级编程语言性能大PK D语言成首选 解读Facebook第二季度财报 移动业务风生水起 请问:Logical Disk Manager Administrative Service这个服务是做什么用的? 急!请教各位高手! 窗体中的IE控件,打开了一个html页面。我如何从VB中知道用户单击了html页面上的某个commmand按钮?可加分! 这里人多,火急问个超星图书阅览器下载的问题! 如何改变图象的对比度和亮度(速度要快点) 请交如何解决这个bug?鼠标消息传给滚动条,但是不能传给层本身的移动函数?(附代码) 网络问题,服务器开起一段时间后,工作站就不能正常登录。 一个比较愁人的问题,不知道谁遇到过…… 各位同仁有没有这样的经历?。。。。。。。。。。。 请问哪里有关于硬盘配额管理的技术文章~~~~ 国内哪家软件公司更尊重技术? 上传问题的扩展!希望高手帮帮我!我实在弄不出来了!在线等待 写过入党申请书的进来了了.... sos, the simplest iis problem 在pb中如何向外部写文件?比如文本文件。急!!在线等待 高分悬赏--哪里有Delphi7.net下载? 请问如何来截获DLL 的函数接口? win 2000 pro 中的direct的问题!请指教! 请问wingate客户端应该如何配置才能使用OICQ? 21fuck(咚咚)进来看 关于表单"type"的判断 关于OnOpenDocument()的一个问题。(先上100分,解决后再给100!在线等!) 在DOS年代有个小程序(什么名称忘记了)能把一部分内存映射为磁盘,不知在WIN2000/9X是否有内似工具或有办法做到吗? win 2000 pro 中的direct的问题!请指教! 来这儿去高分!!!! 各位前辈有谁用MS SQL SERVER 2000的请进! 谁有"我家我设计"(圆方的系统)的注册码? 残啊?都要计算机专业毕业的。。。。。 怎样求得两时间相差10天? 各位高手们 关于ATL COM 在98和2000下的区别 关于CEvent 如何判断commondialog.showsave ,用户是按了确定,还是取消按钮? 我最近编写一个DLL,用来实现ftp功能,使用了delphi中的nmftp控件,结束调用后总出现莫名其妙的内存错误。请高手指教! 请问哪里有win2000 server的软件下呀?迫切需要,恳请各位能帮忙!谢谢! 面试时问主考官什么样的问题算有水平? 我枚举一个外部程序的子窗体,可是却只看到了TDXDraw,我怎么样才能得到TDXDraw中更多的信息呢? 帶一個checkbox的list應該怎麼做? 扫描程序如何循环处理一段IP地址? 数据库中图片如何调用? 如下错误是什么意思,如果解决 一个关于SQL的问题 残啊?都要计算机专业毕业的。。。。。 Miscrosoft Scrioting Library是何东东?Scrrun.dll上那去弄? 如何让softice支持usb鼠标,键盘 多线程程序中使用采用单线程编译参数编译的DLL,会有什么后果? 很多on error goto ... 很简单,有NT4.0或XP的朋友一看就知道。在线等待 手工配置Grub:希望能对大家有所帮助 新显卡驱动For Linux Where download? ADO问题?????????????/
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘