华工 姜新 汪秉文
摘要 :本文从一个具体例子出发阐述了在Visual Basic 5.0环境下进行外接
程序(Add-Ins)开发的原理、关键技术和注意事项,并对其相关技术,如ActiveX、多态性与接口、事件变量等
vb5新引进的编程概念也做了必要的分析和描述。
关键词:外接
程序(Add-Ins),ActiveX,接口,多态,事件变量
一、 概述
Visual Basic下的Add-Ins,即外接程序,是扩展VB编程环境的非常有用的工具。作为一个开发者,我们发现在使用Visual Basic集成开发环境(IDE)时经常需要重复地干同一件简单的工作,如设置所有或一类控件的字体,前景及背景颜色,改变控件的Tab次序等。这些简单、单调而重复性的劳动如果由程序自动完成,将变得非常方便,而Add-Ins正为实现这一功能提供了可能。与Visual Basic的早期版本不同,Visual Basic5.0下的Add-Ins是一种模块化的ActiveX部件,可以作为ActiveX DLL或EXE文件进行编译。另外,跟以前的版本相比,VB5下Add-Ins无论从编程思想还是从其扩展模型的对象与结构来说,变化都比较大,因此VB5下编写Add-Ins
程序与早期版本将会有很大不同。在这篇文章中,我们将从一个具体例子出发,阐述VB5下Add-Ins的编程。
二、
问题的提出
在Visual Basic下进行窗体设计时,我们一般希望自己的程序具有风格一致的界面,如同类控件具有相同的外观、相同的字体等。另外,我们在设计时还应该考虑到屏幕分辨率的变化对
程序的影响,例如我们经常发现出现这样的问题:即在某一分辨率(如800*600)下看起来比较好的字体,当在另一分辨率下(如640*480)运行时将变得非常难看;或者在中文环境下看起来比较舒服,但在英文环境下却很不清晰。这种种原因都使得我们必须调整窗体控件的字体,以达到最佳效果。但如果表单或控件比较多时,手工调整将会非常繁琐,而且容易出错,因此编写一个Add-Ins以实现字体的自动调整将会非常实用。本文中的例子即是用来实现此功能的。
三、 编程方法
编写Add-Ins的最简单方法是首先利用VB5的编程
模板生成一个Add-Ins的框架,然后在此框架上进一步实现自己的代码。具体方法是在VB5的“文件”菜单下选择“新建工程”,然后在弹出的窗口中选择“外接
程序”(英文版中是“Add-Ins”)即可。这时VB5将生成一个名为MyAddin的工程,该工程中包括一个窗体frm AddIn,一个模块AddIn,以及一个类模块Connect。下面我们对这些部分分别做一简单分析。
1. 类模块Connect
整个类模块Connect的代码均是由
模板自动生成的,大大方便了
程序员编程,但其源代码中有一些比较重要的概念与方法,对我们理解VB Add-Ins甚至VB面向对象编程均有很大好处。下面我们对如下几点做一简单介绍(源代码由于是VB自动产生,这里就没有列出了)。
(1)实现IDTExtensibility接口
所有的VB外接程序都必须实现IDTExtensibility接口,该接口包含了当外接程序与Visual Basic连接时Visual Basic调用的一些方法,无论是通过外接程序管理器,还是其它一些手段。接口是VB5引入的新概念,是Visual Basic提供多态性的一种重要手段。我们知道,面向对象的语言一般都提供多态性。如C++语言,通过类的继承关系,子类重载父类的方法以实现其不同的特性,或父类仅提供方法框架,即无函数体的虚函数,而子类具体实现其代码。简单地说,多态意味着许多类可以提供同样的属性或者方法,而且调用者在调用这些属性或方法之前,不必知道某个对象属于什么类。严格来说,Visual Basic不是完整意义上的面向对象编程语言,但它也能实现多态性,不过这种多态性不是通过继承来实现的,而是通过多重ActiveX接口来提供的。多态性具体实现方法简单来说,首先是建立一个类模块,然后在该模块中声明一些子
程序(Sub),但不实现其代码,这样该类