2024年4月12日发(作者:)

(完整版)VB6.0培训教案

Visual Basic 6.0 培训教案

提前需要进行的环境安装准备:

1.

Visual Basic 6.0中文企业版 + SP6

2.

配套的MSDN中文版

3.

配套的Visual SourceSafe 6。0

4.

Codejock Xtreme Suite Pro ActiveX 9.601控件包

5.

VS FlexGrid Pro 8。0控件包

6.

Axialis IconWorkshop以及IconExperience图标套件

7.

ComExplorer

8.

非Win98、Windows7、Vista操作系统

1

Visual Basic 概述

1.1

IDE集成开发环境:

1.1.1

布局与功能区:

运行Visual Basic 6.0,在”新建工程”提示框处点击”确定”,就进入了IDE集成开发环境,

如下图所示:

1)

菜单与工具栏:

缺省VB只显示了标准的工具栏,根据编程的需要,应该通过右键菜单将所有的工具栏都显

示出来并进行合理的排布,特别是其中的”调试”工具栏比较重要.

2)

窗体设置区域:

这里是模拟运行的效果所显示的窗体,可在上面进行控件拖放等可视化设计;根据所使用控

件的不同,不一定能完全达到所见即所得的效果.

3)

控件工具箱:

显示可用的控件图标,这里只缺省列举VB内置的标准控件。

4)

工程浏览器:

显示各个工程以及工程所包含的各种文件的树形浏览器;对一个工程组,可能包含多个工

程,都显示在浏览器中.

(完整版)VB6.0培训教案

5)

属性浏览器:

用于显示窗体、或者窗体中当前所选择控件的属性列表;也可以显示工程浏览器中当前所选

择的其他文件的属性。

6)

窗体布局:

用于直观显示当前窗体在屏幕中的布局,可拖动其中的窗体改变屏幕位置;该区域一般不使

用,为增加其他区域的可视区域可将它隐藏。

开发过程中,根据可视区域尺寸的需要,以上各个区域都可以关闭或者通过工具栏上面的按钮

显示出来.

注:图例中有一些菜单、工具条、页卡与标准的VB环境有所区别,是因为安装了CodeSmart辅

助编程插件。

1.1.2

可视化设计开发:

窗体缺省是处于设计状态,在设计状态下,点击控件工具箱上面的对应控件,然后在窗体上

面进行拖放,就添加了这个控件;在窗体上面摆放多个控件,并进行拖放排布,在属性浏览器

中设置它的相应属性,就是可视化设计的主要工作。

除了标准的内置控件外,可以在控件工具箱上面点击右键,选择”部件”(或者选择菜单”

工程部件”),就会弹出第三方控件列表对话框,勾选对应的控件之后,在控件工具箱上面会

增加显示对应的控件图标。

在工程浏览器中,左上角的两个图标用于切换窗体的设计界面和代码书写界面,双击窗体设

计界面也可以切换到代码书写界面;代码书写界面类似下图:

其中有两个下拉框,第一个下拉框定位具体的对象(窗体或者控件),第二个下拉框定位它的具

体某个事件,当事件函数在代码中不存在时,会自动产生。

除了事件函数外,也可能有一些自已书写的函数,可以在第一个下拉框中选择”(通用)”,然

后就可以在第二个下拉框中找到这些函数进行定位。

Visual Baisc的代码都是由一个个的函数组成,所以又称为函数式编程。

在窗体界面设计好,代码编写完成之后,点击工具栏上面的”启动”按钮(F5),即可运行程

序;运行程序有两种方式,一种是”启动”,一种是"全编译执行”(Ctrl+F5),全编译执行

可以检查出代码中的编译错误,从好的习惯出发,一般都应该使用”全编译执行".

程序运行之后,如果要进行调试,可以点击工具栏上面的"中断”按钮(Ctrl+Break),即进入

代码调试状态;如果要终止程序,可以关闭窗体,或者点击工具栏上面的”结束”按钮。

1.1.3

VB环境设置:

在使用VB环境进行开发之前,先可以进行一些基本的选项设置,但不是必须的。选择菜单"工具

选项"进入选项设置,下面介绍几个常用的选项设置,其他的保持缺省即可:

1)

自动语法检测:

在”编辑器"页面,该选项一般情况下应勾上,这样在代码书写过程中,会自动对错误的语

法进行检查提示。

2)

要求变量声明:

在”编辑器”页面,该选项一般情况下应勾上,虽然VB支持不声明变量直接使用,但这样是

不严谨的,我们的规范也不允许。该选项勾上的情况下,代码窗体的最前面会自动加上”

Option Explicit”关键字.

(完整版)VB6.0培训教案

3)

代码颜色和字体:

在”编辑器格式”页面,这里面可以根据自身的情况,设置对应的颜色和字体。

4)

窗体网格设置:

在”通用”页面,根据自身情况,确定是否勾选”显示网格”和"对齐控件到网络";

5)

错误捕获:

在"通用"页面,这个是比较重要的参数,影响程序调试。但具体选项的作用,我们在后面

错误调试的章节再进行说明。

另外VB开发环境是一个开放的环境,可以在IDE环境中加载插件以提供一些辅助编程的功能,

比如前面提到的CodeSmart就是一种插件;甚至可以自已使用VB开发插件(本培训课程不涉

及)。

加载插件的方法是选择菜单”外接程序外接程序管理器”,就会弹出外接程序管理器,并列

举出可用的插件,选择对应的插件,并勾选”在启动中加载、加载/卸载”,然后在菜单中,就

会自动添加相应的功能项。

VB缺省提供了一些有用的插件,下面简单介绍一下:

1)

Source Code Control Add—In:

这个是与Visual Source Safe源代码管理器相集成的的一个插件,加载之后,可以直接方

便地在VB环境中进行源代码的管理和处理.关于Visual Source Safe的集成使用,后面章

节再进行介绍。

2)

VB6 API Viewer:

一个Windows标准API的查询和函数定义生成器,方便进行API编程。

3)

VB6类生成工具:

辅助定义类,类的属性、方法、事件,设置类集合,并自动生成对应代码的工具;这个工

具可能经常使用。

4)

VB6资源编辑器:

当要把图片、字符串等资源附加到工程中,一并编译到文件中时,需要使用到资源文件,这

个工具可以对资源文件中的内容进行编辑.关于工程中资源的访问,后面章节再进行介绍。

1.2

VB工程与文件类型:

1.2.1

可开发的工程与类型:

进入Visual Basic 6。0时,会提新建的工程类型。这里对我们常用的几种工程类型进行说明:

1)

标准EXE:

开发Windows 标准的exe可执行文件。

2)

ActiveX DLL:

开发基于COM对象的DLL部件,通过开放公共的类接口来被其他程序所调用,其他程序可

以是支持COM部件调用的任何语言编写的;该DLL部件可能是系统中的业务组件之一,也

可能是一个公共功能的组件;

3)

ActiveX EXE:

与ActiveX DLL类似,可通过开放公共的类接口来被其他程序所调用;但它是以exe的方式

出现,因此相对于调用它的主程序来说,ActiveX EXE是在独立的进程中运行.

4)

ActiveX 控件:

同样是基于COM对象的程序,但是以控件的形式提供让其他程序调用.

1.2.2

工程文件组成:

窗体只是VB工程中的一种文件,VB工程(Project,prj)中可能包含的比较常用的文件类型

如下:

1)

窗体:

Form,用于与用户进行交互,文件扩展名为frm,文本格式,存放各个控件的属性,以及窗

体中的代码;如果窗体中包含二进制数据(比如窗体中有一张图片),就会产生同名的frx

文件.

(完整版)VB6.0培训教案

2)

模块:

Modual,用于存放全局使用的公共变量、公共函数,文件扩展名为bas。

3)

类模块:

Class,用于实现VB中的类,VB基于对象的编程就主要靠类模块实现,文件扩展名为cls。

4)

用户控件:

UserControl,实现自定义控件时它是主要的界面设计文件,特性与窗体文件类似,扩展名

为ctl,对应的二进制同名文件为ctx。

5)

属性页:

PropertyPage,实现自定义控件时,对控件的属性进行设置的窗体,特性与窗体文件类似,

扩展名为pag,对应的二进制同名文件为pagx.

6)

资源文件:

Resource,用于存放工程中使用的,额外的图片、字符串等数据,与工程一起编译。二进制

格式,扩展名为res,一个工程中只能有一个资源文件。

以上文件的名称都可以在属性浏览器中进行设置,保存时的磁盘文件名缺省与所设置的文件名

称相同,但也可以强制保存为其他磁盘文件名,不过这样是很不规范的行为,容易给管理造成

混乱。

1.2.3

工程属性与启动:

1)

启动工程以及工程的启动对象:

在一个工程组中(Visual Basic Project Group、vbg),可以包含多个工程(比如一个类

型为标准exe的主工程,若干个类型为ActiveDLL的业务部件工程),但启动工程只有一个;

在C/S开发模式中,启动工程就是exe工程,在工程浏览器中选中exe工程名,点击右键,

选择"设置为启动”即可;当只有一个工程时,它缺省就是启动工程。

设置了启动工程,该工程启动的入口又有两种方式;一种是缺省以工程中添加的第一个

窗体作为启动入口;另一种是以模块文件中的Main过程作为入口(模块中定义的Public

Sub Main或者Sub Main),具体可以在工程属性的启动对象中设置;当要编写无界面交互的

程序,或者在窗体显示之前先要作一些特殊处理的程序来说,Sub Main启动就非常有用.

2)

工程属性:

在工程浏览器中选中某个工程名,点击右键,选择"〈工程名>属性”即可弹出工程属性设置

框。工程有一些比较重要的属性,下面分别介绍:

1)

“通用”页面:

启动对象:前面已经说了,用于选择窗体启动,还是Sub Main启动。这个选项主

要针对exe工程,对于dll、ocx等工程,缺省为”(none)"。

2)

“生成”页面:

(完整版)VB6.0培训教案

版本号:设置当前工程部件所对应的版本号,每一位允许在0—9999之间设置;在

产品化的开发中,版本号非常重要;该属性在代码中可以通过APP。Major、Minor、

Revision读取。

注:在Windows的文件属性中看到的版本号格式是4段的,如10。28。0。10,这

里的对应设置为10.28。10。

应用程序:

标题用于设置对工程的简称,如”药房业务部件”,这个标题同时也是工程中调用

MsgBox函数进行消息提示框的缺省标题,该属性在代码中可以通过读

取.

图标用于设置工程编译后所生成文件的图标,它是通过选择工程中的某个窗体,而

使用该窗体的图标作为工程编译文件的图标.

版本信息:

设置一些附加的工程信息,一般是跟版权相关的信息,包括”产品名、公司名、合

法版权、合法商标、文件描述”等,在代码中可通过APP。ProductName、CompanyName

等属性访问。工程被编译成文件之后,在Windows的文件属性中也可以查看到这些

信息。

命令行参数:

标准exe工程编译之后,由其他程序调用时可以传入命令行参数;如果在这里输入

命令行参数,就是让程序运行时,模拟进行传入,以方便程序进行调试。

3)

“部件”页面:

版本兼容:

对于ActiveX EXE/DLL/控件这几种类型的工程,都是以COM类来开放接口,在编译

生成文件时,与以前的版本的文件存在一个接口兼容性问题,在接口类的定义、函

(完整版)VB6.0培训教案

数、参数等未发生变化,或者只发生了向下兼容性的变化时,应该选择按”二进制

兼容”模式进行编译,并指定要进行兼容检查的磁盘文件。

这个设置对于公用性质的部件特别重要,一旦不兼容了,使用公用部件的程序就会

出错,除非也重新编译使用公用部件的程序。

1.2.4

工程编译与发布:

工程编译的方法比较简单,选择菜单"文件生成<工程名>”,然后指定要生成到的路径和文件

名即可,标准EXE、ActiveX DLL、ActiveX EXE、ActiveX 控件编译时分别生成的是exe、dll、

exe、ocx文件。

要发布所编译的文件,需要将它所依赖的其他文件一并包含,依赖的的文件包括:

1)

Visual Basic 6.0的运行支持文件:msvbvm60。dll,放在系统目录System32下面.

2)

工程所使用到的控件文件,包括自定义控件和第三方控件文件,如。

3)

工程所使用到的其他DLL组件,包括自已编写的ActiveX DLL,以及第三方的公共组件等,

如.

4)

工程中所涉及到要读写的其他独立文件。

注:VB在编译过程中,可能会生成lib、exp等一些附加文件,这些文件在编译之后可以删除。

1.3

VB对象的基本概念:

Visual Basic 6。0是基于对象的编程,不是完全面向对象的编程,对象的继承、多态等特性不能

很好地处理;但使用对象编程仍是VB中很重要的功能,在日常工作中大量使用.

1.3.1

窗体对象:

前面提到的窗体,VB中也是一种Form类的对象,它拥有属性、方法、事件,对Form,也完全

可以按照类的构建方法,自已再增加属性、方法、事件;除了可以直接通过窗体名使用窗体外,

也可以通过对象使用模式,定义基于窗体类的对象,实例化之后进行使用,如下面的代码:

方法1:

Form1。Show

方法2:

Dim objForm as Form1

Set objForm = New Form1

objForm。Show

1.3.2

类模块与对象:

VB中的类模块(Class)是专门用来定义类、实现对象处理的文件,定义使用一个对象的步骤如

下:

1.

在工程中添加一个类模块,并命名,比如cls

Person

2.

在类模块中添加属性、方法、事件,比如添加两个属性”Name、Sex”,添加两个方法"Eat、

Sleep

",添加一个事件" GetIll"。

3.

在窗体中定义一个对象变量,并实例化,如:

Dim objPerson as clsPerson

Set objPerson = New clsPerson

或者

Dim objPerson as New clsPerson

4.

给该对象的属性赋值、读取,调用对象的方法。

5.

使用对象的事件比较特殊,需要使用WithEvents关键字,并且需要将对象定义为窗体模块

级的、单独使用New关键字进行实例化:

Private WithEvents mobjPerson as clsPerson