前言VisualBasic是目前进行Windows应用程序设计的最佳工具之一,也是最佳的程序设计入门语言,这一看法已经得到普遍认可。非计算机专业计算机基础教学的3个不同层次,分别解决的是“操作技能”、“思维训练”、“综合应用能力”问题。学习一门程序设计语言,主要目的是要提高读者分析归纳、解决问题的能力,在思维训练方面受益,并使得读者通过更系统、深入的学习后开发实用程序成为可能。因此,本书在内容上精选了VisualBasic6.0中最基础、最常用并实用的部分;在编排和风格上力图体现循序渐进、深入浅出的特点;以样本程序示例教学,阶段性构筑读者的成就感,使得艰苦的程序设计工作升华为一种艺术创作,提供了一条通往程序设计高手的捷径。前言本书的编写得到了浙江省高校计算机教学研究会的大力支持。本书共分9章,第1、第7章由浙江科技学院的罗朝盛教授编写,第2、第3、第4、第6章由浙江工业大学的胡同森副教授编写,第5章由浙江理工大学的庄红副教授编写,第8章由胡同森和浙江师范大学的朱建新编写,第9章由杭州电子科技大学的郭艳华副教授编写。附录部分包括ASCII字符集、VisualBasic常用系统函数、VisualBasic常用属性、VisualBasic常用事件、VisualBasic常用方法以及部分对象能使用的常用方法,为大家使用VisualBasic进行程序设计提供查找资料的方便。全书由浙江工业大学陈庆章担任主编,由胡同森统稿。前言另外,与本教材配套使用的另一本教学或自学参考书《VisualBasic学习及实践指导》将在2005年春季前出书。书中将有本教材习题的参考答案和《VisualBasic学习及实践指导》中附加习题的参考答案。此书是教师教学、学生或读者自学非常实用的辅助参考书。希望所有读者和从事计算机基础教学的各位同仁,对本书多提宝贵意见,使其逐步完善。在此,预致我们深深的谢意。本书编委会2004年7月编委会名单主任:方永平副主任:胡维华委员(以姓氏笔画为序)陈庆章何钦铭项小仙赵建民俞瑞钊蒋联海雷炜楼程富主编:陈庆章编著者:胡同森罗朝盛庄红郭艳华朱建新目录第1章VisualBasic6.0程序设计概述第2章程序设计基础第3章结构化程序设计与数组第4章函数与过程第5章常用控件第6章图形控件和图形方法第7章对话框和菜单程序设计第8章文件第9章数据库与数据访问技术第1章VisualBasic6.0程序设计概述1.1VisualBasic简介1.2VisualBasic6.0可视化编程环境1.3VisualBasic中的基本概念1.4窗体1.5VisualBasic程序的组成及工作方式1.6一个简单的VisualBasic程序的创建实例1.7小结1.1.1VisualBasic的发展过程Basic(BeginnersAll-PurposeSymbolInstructionCode——初学者通用指令代码)语言,是早期微型计算机中广泛使用的计算机程序设计高级语言。VisualBasic在原有Basic语言的基础上进一步发展,综合了Basic语言和Windows操作系统的优点,把它们融合在一起,为初学者在Windows环境下编写应用程序提供了良好的开发环境。“Visual”的原意是指“可视的”或“看得见的”,是为用户开发图形用户界面(GUI)提供的一种方法。用户不需要编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象加到屏幕上的适当位置,再进行简单的设置即可。1.1.1VisualBasic的发展过程1991年,微软公司推出了VisualBasic1.0版,这在当时引起了很大的轰动。许多专家把VisualBasic的出现当作是软件开发史上的一个具有划时代意义的事件。其实,现在看来,VisualBasic1.0的功能实在是太弱了。但在当时,它是第一个“可视”的编程软件。1992年初,发布VisualBasicProfessionalToolkit,其中包含了一组由微软公司和其他公司开发的自定义控件。这时,面向对象和复用性开始成为软件开发中的重要概念。同年,又发布了MicrosoftVisualBasic2.0,其中包含了变体数据类型、预定义True、False常量和对象变量。1993年,VisualBasic3.0的推出,新增了标准数据控件,带有Jet1.1版本的数据库引擎。1995年,微软公司又推出了VisualBasic4.0。该版本不但大量改写了原来的VisualBasic,还加入了OLE技术并能够生成对象;同时还支持32位自定义控件OCX,并可从VisualBasic应用程序中访问其他软件环境下生成的数据,如MicrosoftWord、MicrosoftExcel等。1.1.1VisualBasic的发展过程1997年,微软公司推出了VisualBasic5.0,它支持MicrosoftCOM标准,可以生成ActiveX控件,并有明显创新,开发人员可以用VisualBasic生成自己的自定义控件和DLL。1998年,微软公司又推出了VisualBasic6.0。较以前版本而言,其功能和性能都大大增强了,它还提供了新的、灵巧的数据库和Web开发工具,如增加了新的SQLServer交互方法,包括数据库的访问,使用数据库的新工具和控件等。1.1.1VisualBasic的发展过程VisualBasic5.0/6.0有3种版本,分别为学习版、专业版和企业版。◆学习版:它是最基本的版本,允许编写许多类型的程序,与其他版本相比,所带工具较少。◆专业版:为专业人员而设计,它不仅包含了学习版的全部内容,还包含了许多其他功能,如具有创建ActiveX控件和ActiveX文档的能力;提供Internet开发功能,具有更多使用数据库的工具。◆企业版:这是VisualBasic6.0最完善的版本,该版本主要用于开发企业级分布式应用程序,它包含了许多附加工具,提供了完全集成SQLServer的所有工具。这3个版本是在相同的基础上建立起来的,以满足不同层次用户的需要。对大多数用户来说,专业版就可以满足要求。本书使用的是VisualBasic6.0的企业版(中文),书中介绍的内容尽量做到与版本无关。1.1.2VisualBasic的特点VisualBasic是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,能用于Windows环境下的各种应用软件的开发,是目前较为流行的应用软件开发平台,具有许多明显的特点与优点,现归纳如下:1.提供了面向对象的可视化编程工具VisualBasic采用的是面向对象的程序设计方法(OOP),它把程序和数据封装在一起而视作为一个对象。VisualBasic提供了可视化的设计工具,把Windows界面设计的复杂性“隐藏”起来,开发人员只需按设计要求,用系统提供的工具,在屏幕上画出各种对象,并设置这些对象的属性,这样就可以在屏幕上“画”出所需的用户界面,不必为界面设计而编写大量的程序代码,因而大大提高程序设计的效率。1.1.2VisualBasic的特点2.事件驱动的编程方式传统的程序设计是一种面向过程的方式,程序总是按事先设计好的流程运行,用户不能随意改变、控制程序的流向。在VisualBasic中,用户的动作——事件控制着程序的流向,每个事件都能驱动一段程序的运行。程序员只需编写响应用户动作的代码,而各个动作之间不一定有联系,这样的应用程序代码一般比较短,所以程序易于编写与维护。3.结构化的程序设计语言VisualBasic具有丰富的数据类型和结构化程序结构,其特点是:•(1)增强了数值和字符串处理功能,比传统的Basic语言有许多的改进。•(2)提供了丰富的图形及动画指令,可方便地绘制各种图形。•(3)提供了定长和动态(变长)数组,有利于简化内存管理。•(4)增加了递归过程调用,使程序更为简练。•(5)提供了一个可供应用程序调用的包含多种类型的图标库。•(6)具有完善的调试、运行出错处理。1.1.2VisualBasic的特点4.提供了易学易用的应用程序集成开发环境在VisualBasic的集成开发环境中,用户可设计界面、编写代码、调试程序,直至将应用程序编译成可执行文件在Windows上运行,使用户在友好的开发环境中工作。5.支持多种数据库系统的访问利用VisualBasic的数据控件,可访问MicrosoftAccess、Dbase、MicrosoftFoxPro、Paradox等,也可以访问MicrosoftExcel、Lotusl1-2-3等多种电子表格。1.1.2VisualBasic的特点6.支持动态数据交换(DDE)、动态链接库(DLL)和对象的链接与嵌入(OLE)动态数据交换是MicrosoftWindows除了剪贴板和动态链接函数库以外,在Windows内部交换数据的第三种方式。利用这项技术可在VisualBasic开发的应用程序与其他Windows应用程序之间建立数据通信。动态链接库中存放了所有Windows应用程序可以共享的代码和资源,这些代码或函数可以用多种语言写成。VisualBasic利用这项技术可以调用几乎任何语言产生的DLL,也可以调用Windows应用程序接口(API)函数,以实现SDK所能实现的功能。7.完备的Help联机帮助功能与Windows环境下的其他软件一样,在VisualBasic中,利用帮助菜单和功能键,用户可随时方便地得到所需的帮助信息。VisualBasic帮助窗口中显示了有关的示例代码,通过复制、粘贴操作可获得大量的示例代码,为用户的学习和使用提供了极大的方便。1.1.3VisualBasic6.0的新特性VisualBasic6.0与以前的版本不同,它是VisualStudio家族的一个组件,保留了VisualBasic5.0的优点,如在开发环境上的改进,增加了工作组,在代码编辑器中提供了控件属性/方法的自动提示,能编译生成本机代码,大大提高程序的执行速度等。同时,VisualBasic6.0在数据访问技术、Internet技术及智能化向导方面都有了许多新的特性。下面对VisualBasic6.0的新特性作一个简单的概括。1.数据访问的新特性VisualBasic6.0在数据访问技术方面比VisualBasic5.0有了很大的增强,首先,它采用了一种新的数据访问技术ADO(ActiveDataObject),使之能更好地访问本地和远程的数据库。其次,在数据环境方面,允许程序员可视化地创建和操作ADO连接及命令,为程序员操纵数据源提供了很大的方便。另外,增加了ADO控件和集成的可视化数据库工具。1.1.3VisualBasic6.0的新特性2.Internet功能的增强Internet是当今发展的潮流,VisualBasic6.0在Internet方面的增强使得它已成为当前最强有力的开发工具之一。•(1)IIS程序设计:用VisualBasic6.0的专业版和企业版可直接创建IIS应用程序,响应用户的要求。•(2)DHTML的设计:利用VisualBasic6.0,程序员可直接通过VisualBasic代码来实现动态网页的设计。•(3)InternetExplorer4.x对下载ActiveX文档的支持。3.控件、语言和向导方面的新增特性•(1)DataGrid、DataList、DataCombo等新增的数据控件:相当于DataBase(简称DB)版本的DBGrid、OLEDBList和DBCombo,所不同的是它们都支持新的ADO控件。•(2)可以创建自己的数据源和数据绑定对象。•(3)函数可以将数组作为返回值,并且可以为可变大小的数组赋值。•(4)新增了安装向导、数据对象向导、数据窗体向导以及应用程序向导。这些新增的向导,可以使开发人员设计出更优秀的应用程序。1.1.3VisualBasic6.0的新特性4.高度可移植化的代码代码的可移植性是面向对象编