1、第一章 Visual Basic 导论第一章 Visual Basic 导论【本章教学目标】 本章主要介绍VB语言的基本特性、功能特点及其开发环境。 知识点: 1. Visual Basic 在程序开发中的地位及作用。2掌握开发环境的窗口作用。 3. 对Visual Basic的使用环境加以介绍。 技能点: 1.理解并能解释面向对象程序设计的基本思想。 2.熟悉并基本掌握Visual Basic的运行环境。3.理解并能运用Visual Basic6.0的主要开发窗口。对于每一位有志于掌握Windows平台上应用程序开发技术的学习者,都必须首先学习和掌握至少一门计算机程序设计语言作为应用程序的开
2、发工具。VB是当今世界应用软件开发中最为流行的工具之一,要学习VB程序设计的语言和方法,就必须了解VB语言的基本特性、功能特点及其开发环境。 1.1 概述颜华城教授于1999年底开始为北京市建筑物资租赁公司开发研制“计算机建筑物资租赁管理信息系统”,该系统现已投入该公司所属各租赁站和公司本部实际运行3年,取得了良好的经济和社会效益。建筑物资租赁管理是一个集物流和资金流相互交织为一体,数据处理过程复杂的系统,它是在Windows 95/98 以及 Windows 2000 平台上,以Visual Basic 6.0 (企业版)为开发工具,开发研制的数据库应用软件。系统以 ADO 方式连接 Acc
3、ess 97 数据库中的数据,并集成 Excel 97 作为报表输出的工具。 计算机建筑物资租赁管理系统系统共包括61个主要数据处理与操作功能,这些功能分为9个子系统,源程序中共含72个 VB 窗体以及一个标准模块。 开发者之所以选择VB作为系统的开发工具,是因为 VB 继承了其先辈 Basic程序设计语言简单易用的特点,其编程系统又采用了面向对象、事件驱动的编程机制,提供了一种所见即所得的可视界面设计方法,更可贵的是 VB可以与Microsoft(微软)公司提供的Microsoft Office中的应用程序紧密结合,即与Microsoft Office 中的宏语言混合编程,开发者可以充分利用
4、Microsoft Office 中功能强大的应用软件完成系统所需要的各项工作。 一、 Windows 平台上应用程序的可视化开发工具Visual Basic Visual Basic 最早于1991年由Microsoft 公司推出,其中Visual 表示“可视化”,可视化程序设计语言是当代计算机程序设计语言的先进代表与主流。1998年Microsoft 公司又推出Visual Basic 6.0,Visual Basic 6.0 在开发环境、功能方面比前几版进一步完善和扩充,尤其在数据库管理、网络应用方面更胜一筹,使得Visual Basic 6.0 成为大多数程序员首选的编程工具。 VB
5、6.0包括三个版本,分别为学习版、专业版和企业版。其中“学习版”为 VB 6.0的基础版本,主要供初学者学习使用。“专业版”主要供专业人员使用,它除具有学习版的全部功能外,还包括 ActiveX、Internet控件开发工具、动态HTML页面设计等高级特性。“企业版”是VB 6.0的最高版本,供开发研制企业应用程序使用。 在本门课程的教学中,我们使用的是Visual Basic 6.0 的中文企业版。 二、VB功能特点 1、具有面向对象的可视化设计工具 在VB中,应用面向对象的程序设计方法(OOP方法),把程序和数据封装起来视为一个对象,每个对象都是可视的。程序员在设计时只需根据界面设计的要求
6、,直接在计算机屏幕上“画”出各种需要的不同类型的对象(控件和窗体),并为每个对象设置属性,就可以完成应用程序的人机对话的界面设计。最后程序员的编程工作仅针对对象要完成的功能进行编程,就可以完成应用程序的全部程序设计工作。 2、事件驱动的编程机制事件驱动编程是当代最先进的编程方法,VB中每个对象都有相应的各种事件,每个事件都能够驱动一段程序的运行。针对对象所响应的事件进行编程,能够令应用程序完成设计者所期望的各种数据处理及其他工作。此种编程机制既可以极大地减少编程量,又可以降低编程的难度,使得程序易于编写和维护。 3、提供了易学易用的应用程序集成开发环境 VB为用户提供了开发应用程序的集成开发环
7、境,用户可以在同一个开发环境中设计应用程序界面、编写程序代码、调试程序、进行应用程序的编译等各项工作。4、结构化的程序设计5、支持多种数据库系统的访问 利用VB 提供的数据控件或ODBC,VB可以访问各种当代流行的数据库系统,如Access、SQL Server以及Oracle等各种类型的数据库,也可访问Microsoft的Excel电子电子表格以及 Loutus1-2-3等。 6、OLE技术 VB的核心是其对对象的链接与嵌入(OLE)的支持,利用OLE,VB可开发集声音、图象、动画、字处理、Web等对象于一体的应用程序。 7、Active技术 VB可方便地使用标准的Active部件,调用标准
8、接口,实现各种特定的功能。 8、完备的Help联机帮助功能。 三、运行环境 VB 6.0是Windows95/98 、Windows NT或Windows 2000下的一个应用程序,它对环境的要求与所依赖的操作系统的要求是一致的。 硬件要求:586以上CPU,16M以上内存,100M以上硬盘。 软件要求:Windows95/98、NT3.51以上版本或Windows2000。 四、启动 启动VB的常用方法主要有以下两种方法: 1、通过“开始”按钮的“程序”菜单,选择打开“Microsoft Visual Basic 6.0 中文版”。 2、双击桌面上的VB快捷方式图标。 1.2 集成开发环境一
9、、 IDE集成开发环境:1.布局与功能区:运行Visual Basic 6.0,在”新建工程”提示框处点击”确定”,就进入了IDE集成开发环境,如下图所示: 1) 菜单与工具栏:缺省VB只显示了标准的工具栏,根据编程的需要,应该通过右键菜单将所有的工具栏都显示出来并进行合理的排布,特别是其中的”调试”工具栏比较重要。2) 窗体设置区域:这里是模拟运行的效果所显示的窗体,可在上面进行控件拖放等可视化设计;根据所使用控件的不同,不一定能完全达到所见即所得的效果。3) 控件工具箱:显示可用的控件图标,这里只缺省列举VB内置的标准控件。4) 工程浏览器:显示各个工程以及工程所包含的各种文件的树形浏览器
10、;对一个工程组,可能包含多个工程,都显示在浏览器中。5) 属性浏览器:用于显示窗体、或者窗体中当前所选择控件的属性列表;也可以显示工程浏览器中当前所选择的其他文件的属性。6) 窗体布局:用于直观显示当前窗体在屏幕中的布局,可拖动其中的窗体改变屏幕位置;该区域一般不使用,为增加其他区域的可视区域可将它隐藏。开发过程中,根据可视区域尺寸的需要,以上各个区域都可以关闭或者通过工具栏上面的按钮显示出来。注:图例中有一些菜单、工具条、页卡与标准的VB环境有所区别,是因为安装了CodeSmart辅助编程插件。2.可视化设计开发:窗体缺省是处于设计状态,在设计状态下,点击控件工具箱上面的对应控件,然后在窗体
11、上面进行拖放,就添加了这个控件;在窗体上面摆放多个控件,并进行拖放排布,在属性浏览器中设置它的相应属性,就是可视化设计的主要工作。除了标准的内置控件外,可以在控件工具箱上面点击右键,选择”部件”(或者选择菜单”工程部件”),就会弹出第三方控件列表对话框,勾选对应的控件之后,在控件工具箱上面会增加显示对应的控件图标。 在工程浏览器中,左上角的两个图标用于切换窗体的设计界面和代码书写界面,双击窗体设计界面也可以切换到代码书写界面;代码书写界面类似下图: 其中有两个下拉框,第一个下拉框定位具体的对象(窗体或者控件),第二个下拉框定位它的具体某个事件,当事件函数在代码中不存在时,会自动产生。除了事件函
12、数外,也可能有一些自已书写的函数,可以在第一个下拉框中选择”(通用)”,然后就可以在第二个下拉框中找到这些函数进行定位。Visual Baisc的代码都是由一个个的函数组成,所以又称为函数式编程。 在窗体界面设计好,代码编写完成之后,点击工具栏上面的”启动”按钮(F5),即可运行程序;运行程序有两种方式,一种是”启动”,一种是”全编译执行”(Ctrl+F5),全编译执行可以检查出代码中的编译错误,从好的习惯出发,一般都应该使用”全编译执行”。程序运行之后,如果要进行调试,可以点击工具栏上面的”中断”按钮(Ctrl+Break),即进入代码调试状态;如果要终止程序,可以关闭窗体,或者点击工具栏上
13、面的”结束”按钮。另外VB开发环境是一个开放的环境,可以在IDE环境中加载插件以提供一些辅助编程的功能,比如前面提到的CodeSmart就是一种插件;甚至可以自已使用VB开发插件。加载插件的方法是选择菜单”外接程序外接程序管理器”,就会弹出外接程序管理器,并列举出可用的插件,选择对应的插件,并勾选”在启动中加载、加载/卸载”,然后在菜单中,就会自动添加相应的功能项。VB缺省提供了一些有用的插件,下面简单介绍一下:1) Source Code Control Add-In:这个是与Visual Source Safe源代码管理器相集成的的一个插件,加载之后,可以直接方便地在VB环境中进行源代码的
14、管理和处理。关于Visual Source Safe的集成使用,后面章节再进行介绍。2) VB6 API Viewer:一个Windows标准API的查询和函数定义生成器,方便进行API编程。3) VB6类生成工具:辅助定义类,类的属性、方法、事件,设置类集合,并自动生成对应代码的工具;这个工具可能经常使用。4) VB6资源编辑器:当要把图片、字符串等资源附加到工程中,一并编译到文件中时,需要使用到资源文件,这个工具可以对资源文件中的内容进行编辑。关于工程中资源的访问,后面章节再进行介绍。二、 VB工程与文件类型:1.可开发的工程与类型:进入Visual Basic 6.0时,会提新建的工程类
15、型。这里对我们常用的几种工程类型进行说明:1) 标准EXE:开发Windows 标准的exe可执行文件。2) ActiveX DLL:开发基于COM对象的DLL部件,通过开放公共的类接口来被其他程序所调用,其他程序可以是支持COM部件调用的任何语言编写的;该DLL部件可能是系统中的业务组件之一,也可能是一个公共功能的组件; 3) ActiveX EXE:与ActiveX DLL类似,可通过开放公共的类接口来被其他程序所调用;但它是以exe的方式出现,因此相对于调用它的主程序来说,ActiveX EXE是在独立的进程中运行。4) ActiveX 控件:同样是基于COM对象的程序,但是以控件的形式
16、提供让其他程序调用。工程文件组成:窗体只是VB工程中的一种文件,VB工程(Project,prj)中可能包含的比较常用的文件类型如下:1) 窗体:Form,用于与用户进行交互,文件扩展名为frm,文本格式,存放各个控件的属性,以及窗体中的代码;如果窗体中包含二进制数据(比如窗体中有一张图片),就会产生同名的frx文件。2) 模块:Modual,用于存放全局使用的公共变量、公共函数,文件扩展名为bas。3) 类模块:Class,用于实现VB中的类,VB基于对象的编程就主要靠类模块实现,文件扩展名为cls。4) 用户控件:UserControl,实现自定义控件时它是主要的界面设计文件,特性与窗体文
17、件类似,扩展名为ctl,对应的二进制同名文件为ctx。5) 属性页:PropertyPage,实现自定义控件时,对控件的属性进行设置的窗体,特性与窗体文件类似,扩展名为pag,对应的二进制同名文件为pagx。6) 资源文件:Resource,用于存放工程中使用的,额外的图片、字符串等数据,与工程一起编译。二进制格式,扩展名为res,一个工程中只能有一个资源文件。 以上文件的名称都可以在属性浏览器中进行设置,保存时的磁盘文件名缺省与所设置的文件名称相同,但也可以强制保存为其他磁盘文件名,不过这样是很不规范的行为,容易给管理造成混乱。 2.工程属性与启动:1) 启动工程以及工程的启动对象:在一个工
18、程组中(Visual Basic Project Group、vbg),可以包含多个工程(比如一个类型为标准exe的主工程,若干个类型为ActiveDLL的业务部件工程),但启动工程只有一个;在C/S开发模式中,启动工程就是exe工程,在工程浏览器中选中exe工程名,点击右键,选择”设置为启动”即可;当只有一个工程时,它缺省就是启动工程。设置了启动工程,该工程启动的入口又有两种方式;一种是缺省以工程中添加的第一个窗体作为启动入口;另一种是以模块文件中的Main过程作为入口(模块中定义的Public Sub Main或者Sub Main),具体可以在工程属性的启动对象中设置;当要编写无界面交互的
19、程序,或者在窗体显示之前先要作一些特殊处理的程序来说,Sub Main启动就非常有用。2) 工程属性:在工程浏览器中选中某个工程名,点击右键,选择”属性”即可弹出工程属性设置框。工程有一些比较重要的属性,下面分别介绍:(1)“通用”页面: 启动对象:前面已经说了,用于选择窗体启动,还是Sub Main启动。这个选项主要针对exe工程,对于dll、ocx等工程,缺省为”(none)”。(2)“生成”页面: 版本号:设置当前工程部件所对应的版本号,每一位允许在0-9999之间设置;在产品化的开发中,版本号非常重要;该属性在代码中可以通过APP.Major、Minor、Revision读取。注:在W
20、indows的文件属性中看到的版本号格式是4段的,如10.28.0.10,这里的对应设置为10.28.10。 应用程序:标题用于设置对工程的简称,如”药房业务部件”,这个标题同时也是工程中调用MsgBox函数进行消息提示框的缺省标题,该属性在代码中可以通过APP.Title读取。图标用于设置工程编译后所生成文件的图标,它是通过选择工程中的某个窗体,而使用该窗体的图标作为工程编译文件的图标。 版本信息:设置一些附加的工程信息,一般是跟版权相关的信息,包括”产品名、公司名、合法版权、合法商标、文件描述”等,在代码中可通过APP.ProductName、CompanyName等属性访问。工程被编译成
21、文件之后,在Windows的文件属性中也可以查看到这些信息。 命令行参数:标准exe工程编译之后,由其他程序调用时可以传入命令行参数;如果在这里输入命令行参数,就是让程序运行时,模拟进行传入,以方便程序进行调试。(3) “部件”页面: 版本兼容:对于ActiveX EXE/DLL/控件这几种类型的工程,都是以COM类来开放接口,在编译生成文件时,与以前的版本的文件存在一个接口兼容性问题,在接口类的定义、函数、参数等未发生变化,或者只发生了向下兼容性的变化时,应该选择按”二进制兼容”模式进行编译,并指定要进行兼容检查的磁盘文件。这个设置对于公用性质的部件特别重要,一旦不兼容了,使用公用部件的程序
22、就会出错,除非也重新编译使用公用部件的程序。3.工程编译与发布:工程编译的方法比较简单,选择菜单”文件生成”,然后指定要生成到的路径和文件名即可,标准EXE、ActiveX DLL、ActiveX EXE、ActiveX 控件编译时分别生成的是exe、dll、exe、ocx文件。要发布所编译的文件,需要将它所依赖的其他文件一并包含,依赖的的文件包括:1) Visual Basic 6.0的运行支持文件:msvbvm60.dll,放在系统目录System32下面。2) 工程所使用到的控件文件,包括自定义控件和第三方控件文件,如mscomct.ocx。3) 工程所使用到的其他DLL组件,包括自已编
23、写的ActiveX DLL,以及第三方的公共组件等,如msscrrun.dll。4) 工程中所涉及到要读写的其他独立文件。注:VB在编译过程中,可能会生成lib、exp等一些附加文件,这些文件在编译之后可以删除。1.3 对象、属性与方法一、VB对象的基本概念:Visual Basic 6.0是基于对象的编程,不是完全面向对象的编程,对象的继承、多态等特性不能很好地处理;但使用对象编程仍是VB中很重要的功能,在日常工作中大量使用。1.窗体对象:前面提到的窗体,VB中也是一种Form类的对象,它拥有属性、方法、事件,对Form,也完全可以按照类的构建方法,自已再增加属性、方法、事件;除了可以直接通
24、过窗体名使用窗体外,也可以通过对象使用模式,定义基于窗体类的对象,实例化之后进行使用,如下面的代码: 方法1:Form1.Show方法2:Dim objForm as Form1Set objForm = New Form1objForm.Show 2.类模块与对象:VB中的类模块(Class)是专门用来定义类、实现对象处理的文件,定义使用一个对象的步骤如下:1) 在工程中添加一个类模块,并命名,比如clsPerson2) 在类模块中添加属性、方法、事件,比如添加两个属性”Name、Sex”,添加两个方法”Eat、Sleep”,添加一个事件” GetIll”。3) 在窗体中定义一个对象变量,并
25、实例化,如:Dim objPerson as clsPersonSet objPerson = New clsPerson或者Dim objPerson as New clsPerson4) 给该对象的属性赋值、读取,调用对象的方法。5) 使用对象的事件比较特殊,需要使用WithEvents关键字,并且需要将对象定义为窗体模块级的、单独使用New关键字进行实例化:Private WithEvents mobjPerson as clsPersonPrivate Sub Form_Load()Set mobjPerson = NewclsPersonEnd SubPrivate Sub mobj
26、Person_GetIll()End SubPrivate Sub Form_Unload(Cancel As Integer)Set mobjPerson = NothingEnd Sub 也可以使用外接工具”类生成器实用工具”直观地定义类并自动生成相应代码;关于对象类型的进一步说明,将在后续章节进行。3.其他常用内置对象:VB中有一些内置的对象,在日常开发工作中经常用到,下面进行简要介绍:1) Me:Me表示的是对象实例自身,在类模块内部使用,窗体也是一种类模块,因此在窗体中使用得非常多。比如在Form1内部的代码中,我们可以书写Me.Caption、Me.TextBox1.Text;通过
27、Me关键字加”.”符号,在代码书写时可以快速找到要访问的属性、方法等;当然在类里面,对于自身的属性、方法等,也可以不加Me前缀直接书写访问。2) VB.APP:当前应用程序对象,通过APP对象(可以不加VB前缀),能够读到当前工程相关的信息,比如版本号(Major、Minor、Revision),产品名(ProductName)等。3) VB.Clipboard:Windows剪贴板对象,可以读取剪贴板中的当前内容,也可以向剪贴板写入数据。4) VB.Screen:当前屏幕对象,可以读取屏幕的尺寸,精度,活动窗体等信息。5) VB.Printer:当前打印机对象,能够读取和设置打印机、纸张等信
28、息,并可以打印机输出文本、图形等内容。关于打印机编程,在应用类产品中非常重要,后面的章节将对打印机编程作进一步讲解。 除了VB内置的对象,Windows和一些第三方厂商也提供了一些公共的对象库,可以在VB中使用,比如ADO数据库操作对象,FileSystemObject文件操作对象等,要使用这些对象库的方法如下:1) 点击菜单”工程引用”,将弹出”引用”对话框;对话框中列举了可以使用的公共对象库,这些对象库都是基于COM的ActiveX DLL/EXE,每个工程缺省引用了VB的一些内置库。2) 找到对应要使用对象库,比如Microsoft ActiveX Data Objects 2.6 Li
29、brary,Microsoft Excel 12.0 Object Library。3) 在代码中定义公共库的对象,并实例化,比如Dim objSheet As New Excel.Worksheet,然后就可以使用对象的属性、方法;如果要使用事件,则需使用WithEvents关键字定义模块级对象。二、窗体与控件常用属性:以下表格中,列举了窗体和控件最常见的属性,但不是说所有的控件都一定具有这些属性。属性名窗体控件类型说明Name字符名称,运行时只读Caption字符显示的文本标题Appearance枚举一般有3D、Flat几种选择,表示窗体或控件的外观是平面的还是立体的。Alignment枚
30、举控件标题文本在内部的对齐方式AutoRedraw布尔缺省为False,当设置为True时,在窗体或者控件上面作图时,不用去处理Paint事件重绘。BoderStyle枚举窗体或控件的边框样式,一般有无边框、单线边框、3D边框等样式选择。BackColor数字背景色ForeColor数字字体颜色或者画笔颜色MaskColor数字当控件具有背景图片时,对图片中MaskColor指定的颜色进行屏蔽透明。UseMaskColor布尔所指定的MaskColor颜色值是否生效。Font对象字体属性,包括字体名、字号、粗体、斜体等IMEMode枚举对于可输入类控件具有,表示控件激活时中文输入法的状态,一般
31、设置为:No Operation(不处理),ON(打开),Off(关闭),Disabled(禁用)Picture对象背景图片Index数字控件的索引,使用控件数组时使用,否则缺省为空;Index=0,同一种控件、名称相同,Index不同的一组控件成为一个控件数组。TabIndex数字焦点顺序索引,TabIndex=0;按键盘上面的Tab键时,焦点按TabIndex从小到大移动,按Shift+tab键反之。TabStop布尔缺省为False,当为True时,表示按键盘Tab键时,焦点不经过该控件;但该控件仍可获取焦点,仍可以强行用鼠标点击获取焦点。SelStart数字输入类控件具备,表示当前键盘光标所在输入内容中的位置,值为0-Len(内容)。SelLen
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1