第一章
一、Visual Basic的特点和版本
(一)Visual Basic的特点
Visual Basic是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。
总的来看,Visual Basic有以下主要特点:
1.可视化编程
2.面向对象的程序设计
3.结构化程序设计语言
4.事件驱动编程机制
5.访问数据库
6.动态数据交换(DDE)
7.对象的链接与嵌入(OLE)
8.动态链接库(DLL)
9.建立用户自己的ActiveX控件
10.建立ActiveX文档
11.Internet组件下载
12.枚举类型
(二)Visual Basic的版本
Visual Basic6.0包括3种版本,分别为学习版、专业版和企业版。
(1)学习版:Visual Basic的基础版本,可用来开发Windows应用程序。该版本包括所有的内部控件(标准控件)、网络(Grid)控件、Tab对象以及数据绑定控件。
(2)专业版:该版本为专业编程人员提供了一整套用于软件开发、功能完备的工具。它包括学习版的全部功能,同时包括ActiveX控件、Internet控件、Crystal Report Writer和报表控件。
(3)企业版:可供专业编程人员开发功能强大的组内分布式应用程序。该版本包括专业版的全部功能,同时具有自动化管理器、部件管理器、数据库管理工具、Microsoft Visual SourceSafe面向工程版的控制系统等。
二、Visual Basic的启动与退出
开机并进入中文Windows后,可以用多种方法启动Visual Basic。
第一种方法:使用“开始”菜单中的“程序”命令。操作如下:
(1)单击Windows环境下的“开始”按钮,弹出一个菜单,把光标移到“程序”命令上,将弹出下一个级联菜单;
(2)把光标移到“Microsoft Visual Basic6.0中文版”,弹出下一个级联菜单,即Visual Basic6.0程序组;
(3)单击“Microsoft Visual Basic6.0中文版”,即可进入Visual Basic6.0编程环境。
第二种方法:使用“我的电脑”。操作如下:
(1)双击“我的电脑”,弹出一个窗口,然后单击Visual Basic6.0所在的硬盘驱动器盘符,将打开相应的驱动器窗口;
(2)单击驱动窗口的vb60文件夹,打开“vb60”窗口;
(3)双击“vb6.exe”图标,即可进入Visual Basic6.0编程环境。
第三种方法:使用“开始”菜单中的“运行”命令。操作如下:
(1)单击“开始”按钮,弹出一个菜单,然后单击“运行”命令,将弹出一个对话框;
(2)在“打开”栏内输入Visual Basic6.0启动文件的名字(包括路径)。例如“c:\vb98\ vb6.exe”;
(3)单击“确定”按钮,即可启动Visual Basic6.0。
第四种方法:建立启动Visual Basic6.0的快捷方式。
三、主窗口
(一)标题栏和菜单栏
1.标题栏
标题栏是屏幕顶部的水平条,它显示的是应用程序的名字。
2.菜单栏
在标题栏的下面是集成环境的主菜单。
(二)工具栏
Visual Basic6.0提供了4种工具栏,包括编辑、标准、窗体编辑器和调试,并可根据需要定义用户自己的工具栏。
四、其他窗口
标题栏、菜单栏和工具栏所在的窗口称为主窗口。除主窗口外,Visual Basic6.0的编程环境中还有其他一些窗口,包括窗体设计器窗口、属性窗口、工程资源管理器窗口、工具箱窗口、调色板窗口、代码窗口和立即窗口。
第二章:事件及属性
以后两章可能会比较枯燥,但不可否认也很重要,所以为了学好VB,我们一定要打好基础才行。
一、事件
通过上一章的例子,你可能对“面向对象的编程”已经有了一定了解,它是由事件驱动的,对于不同的对象,所能感应到的事件也会不同,譬如说当你把鼠标移进某一区域时就会触发MouseMove事件,这很直观,也容易理解,但也有些事件比较抽象,下面我来对一般的事件进行一下解释。
1.窗体和图象框类事件
Paint事件:当某一对象在屏幕中被移动,改变尺寸或清除后,程序会自动调用Paint事件。注意:当对象的AutoDraw属性为True(-1)时,程序不会调用Paint事件。
Resize事件:当对象的大小改变时触发Resize事件。
Load事件:仅适用于窗体对象,当窗体被装载时运行。
Unload事件:仅适用于窗体对象,当窗体被卸载时运行。
2.当前光标(Focus)事件
GotFocus事件:当光标聚焦于该对象时发生事件。
LostFocus事件:当光标离开该对象时发生事件。
注意:Focus英文为“焦点”、“聚焦”之意,最直观的例子是,比如有两个窗体,互相有一部分遮盖,当你点下面的窗体时,它就会全部显示出来,这时它处在被激活的状态,并且标题条变成蓝色,这就是GotFocus事件,而相反,另外一个窗体被遮盖,并且标题条变灰,称为LostFocus事件。上面所说的“光标”并非指鼠标指针。
3.鼠标操作事件
Click事件:鼠标单击对象。
DbClick事件:鼠标双击事件。
MouseDown、MouseUp属性:按下/放开鼠标键事件。
MouseMove事件:鼠标移动事件。
DragDrop事件:拖放事件,相当于MouseDown、MouseMove和MouseUp的组合。
DragOver事件:鼠标在拖放过程中就会产生DragOver事件。
4.键盘操作属性
KeyDown、KeyUp事件:按键的按下/放开事件。
KeyPress事件:按键事件。
5.改变控制项事件
Change事件:当对象的内容发生改变时,触发Change事件。最典型的例子是文本框(TextBox)。
DropDown事件:下弹事件,仅用于组合框(ComboBox)对象。
PathChange事件:路径改变事件,仅用于文件列表框(FileBox)对象。
6.其他事件
Timer事件:仅用于计时器,每隔一段时间被触发一次。
二、属性
每个对象都有它的属性,并且“Name”属性是共有的,有了“Name”属性才可以在程序中进行调用。对于属性,可以在窗体的布局操作中完成,也可以在程序运行中改变,这取决你的需要,但有些属性是只读的,它只能在控件布局时改变。我将在以后的实例中具体介绍各个属性的作用。
三、数据类型
学过编程的人都知道大多数的计算机语言都规定了各自的数据类型,VB也不例外。其实,在一个最简单的程序中数据类型是可以不作规定的,也就是说,变量可以使用各种类型,但是在一个复杂的程序里,这样做就很危险,因为很可能给同一个变量赋予了不同的类型,而导致程序出错。所以,为了程序的严谨和便于查看,正确的定义数据类型是必要的。定义数据的另一个原因是,不同的数据占用不同的内存数量,譬如整型(Interger)数据占2字节,而长整型数据占4个字节,定义合适的数据类型,不管你相信不相信,它可以节省内存!
VB常用的数据类型有:整型(Integer,表示-32768至32767之间的整数)、长整型(Long,表示-2,147,483,648至2,147,483,647之间的整数)、实型(Single,表示-3.37E+38至3.37E+38之间的实数)、双精度实型(Double,表示-1.67E+308至1.67E+308之间的实数),字符(String,每个字符占一字节,可以储存0~65,535个字符),布尔(Boolean,只有两个值True/-1,或False/0)。
数据类型的定义方法:
定义变量最简单的方法是用“Dim”关键字,它的语法:
Dim 【变量名】As 【数据类型】
如:Dim Index As Integer
也可以在一行中定义多个变量,如:
Dim Index As Integer , Dim Number As Long
把多个变量定义成同一类型可以写成:
Dim Index , Number As Integer
更可以在定义时进行初赋值:
Dim Index=3
有时为了简便,也以符号进行简单的定义,作用是和上面一样的。整型可以用“%”代替,长整型可以用“&”代替,实型可以用“!”,双精度实型可以用“#”定义,如刚才的第一个例子可以写成:
Dim Index% 等价于 Dim Index As Integer
对于常量的定义用Const定义,如:Const COLOR=255。
为了在程序中便于查阅,我们对变量和常量的写法进行规定,变量一般用小写方式,常量则全部大写。
注意:使用常量的好处,对于程序中经常出现的数值,应设常量等于它,这样一是书写方便,其二,如果要改变该数值,只需改变定义常量的语句值,而不需改变每个语句,提高了效率。
数组的定义类似于变量定义,所不同的是数组需要指定数组中的元素个数,例如:
Dim IntegerArray(99) As Integer
这个数组中包含100个元素,脚标从0到99。
也可以指定脚标的起始值,例如:
Dim IntegerArray(2 to 10) As Integer
这个数组含有九个元素,脚标从2到10。
还可以定义多维数组:
Dim ThreeD(4,2 to 5,3 to 6) As Integer
上例定义了一个三维数组(4×4×4)。
记录的定义
记录定义是把控制权交给用户的方法,它让用户可以定义自己的数据类型,它使用关键字“Type”,方法是:
Type 【数据类型标识符】
<域名> As <数据类型>
<域名> As <数据类型>
<域名> As <数据类型>
…………………………
End Type
例如,定义一个地址数据:
Type Address
Street As String
ZipCode As String
Phone As String
End Type
这个地址数据里包括三个属性,街区、邮政编码和电话,可以把某数据定义成此类型:
Dim MyHome As Address
要调用或改变“MyHome”的值时,类似于对对象的属性的操作:
变量名.域名=“……”
为了简化书写重复的部分,可以用关键字“With”:
With MyHome
.Street=”阜成路”
.ZipCode=”100037”
.Phone=”12345678”
End With
第二章
一、对象
(一)Visual Basic的对象
1.什么是对象
在Visual Basic6.0中,对象分为两类焕嗍怯上低成杓坪玫模莆ざㄒ宥韵螅梢灾苯邮褂没蚨云浣胁僮?另一类由用户定义,可以象C++一样建立用户自己的对象。
2.对象属性
属性是一个对象的特性,不同的对象有不同的属性。对象常见的属性有标题(Caption)、名称(Name)、颜色(Color)、字体大小(Fontsize)、是否可见(Visible)等。
3.对象事件
所谓事件(Event),是由Visual Basic预先设置好的、能够被对象识别的动作。
4.对象方法
在传统的程序设计中,过程和函数是编程语言的主要部件。而在面向对象程序设计(OOP)中,引入了称为方法(Method)的特殊过程和函数。方法的操作与过程、函数的操作相同,但方法是特定对象的一部分,正如属性和事件是对象的一部分一样。其调用格式为:对象名称.方法名称
(二)对象属性设置
为了在属性窗口中设置对象的属性,必须先选择要设置属性的对象,然后激活属性窗口。属性不同,设置新属性的方式也不一样。通常有以下3种方式。
1.直接键入新属性值
2.选择输入,即通过下拉列表选择所需要的属性值
3.利用对话框设置属值
二、窗体
(一)窗体的结构与属性
窗体结构与Windows下的窗口十分类似。在程序运行前,即设计阶段,称为窗体;程序运行后也可以称为窗口。窗体与Windows下的窗口不但结构类似,而且特性也差不多。
下面按字母顺序列出窗体的常用属性。这些属性适用于窗体,同时也适用于其他对象。
1.AutoRedraw(自动重画)
2.BackColor(背景颜色)
3.BorderStyle(边框类型)
4.Caption(标题)
5.ControlBox(控制框)
6.Enabled(允许)
7.字形属性设置
8.ForeColor(前景颜色)
9.Height、Width(高、宽)
10.Icon(图标)
11.MaxButton、MinButton(最大、最小化按钮)
12.Name(名称)
13.Picture(图形)
14.Top、Left(顶边、左边位置)
15.Visible(可见性)
16.WindowState(窗口状态)
(二)窗体事件
与窗体有关的事件较多,其中常用的有以下几个:
1.Click(单击)事件
2.DblClick(双击)事件
3.Load(装入)事件
4.Unload(卸载)事件
5.Activate(活动)、Deactivdte(非活动)事件
6.Paint(绘画)事件
三、控件
窗体和控件都是Visual Basic中的对象,控件以图标的形式放在“工具箱”中,每种控件都有与之对应的图标。启动Visual Basic后,工具箱位于窗体的左则。
(一)标准控件(内部控件)
Visual Basic6.0的控件分为以下3类:
1.标准控件(也称内部控件)
2.ActiveX控件
3.可插入对象
(二)控件的命名和控件值
1.控件的命名
在一般情况下,窗体和控件都有默认值,如Form1、Command1、Text1等。在应用程序中使用约定的前缀,可以提高程序的可读性。
2.控件值
为了方便使用,Visual Basic为每个控件规定了一个默认属性,在设置这样的属性时,不必给出属性名,通常把该属性称为控件的值。
四、控件的画法和基本操作
(一)控件的画法
可以通过两种方法在窗体上画一个控件。
(二)控件的基本操作
1.控件的缩放和移动
2.控件的复制和删除
3.通过属性窗口改变对象的位置和大小
4.选择控件
第三章
一、语句
(一)Visual Basic中的语句
Visual Basic中的语句是执行具体操作的指令,每个语句以回车键结束。
Visual Basic中可以使用多种语句。早期BASIC版本中的某些语句(如PRINT等),在Viˉsual Basic中称为方法,而有些语句(如流程控制、赋值、注释、结束、暂停等)仍称为语句。
(二)赋值语句
用赋值语句可以把指定的值赋给某个变量或某个带有属性的对象,其一般格式为:[Let]目标操作符=源操作符
(三)注释、暂停与程序结束语句
1.注释语句
格式:Rem 注释内容′注释内容
2.暂停语句(Stop)
格式:Stop
3.结束语句(End)
格式:End
二、编写简单的Visual Basic应用程序
(一)用Visual Basic开发应用程序的一般步骤
在用Visual Basic开发应用程序时,需要以下3步:
建立可视用户界面;
设置可视界面特性;
编写事件驱动代码。
(二)编写Visual Basic应用程序
1.建立用户界面
2.设置属性
3.编写代码
(三)代码编辑器
Visual Basic的“代码编辑器”是一个窗口,大多数代码都在此窗口上编写。它像一个高度专门化的字处理软件,提供了许多便于编写Visual Basic代码的功能,这些功能通过编辑器的选项来设置。除底部的命令按钮外,“编辑器”选项卡分为两部分,即“代码设置”和“窗口设置”。
三、程序的保存和装入
(一)保存程序
Visual Basic应用程序可以用4种类型的文件保存。一类是单独的窗体文件,扩展名为
.frm;一类是公用的标准模块文件,扩展名为.bas;第三类是类模块文件,扩展名为.cls(本书不涉及类模块文件);第四类是工程文件,这种文件由若干个窗体和模块组成,扩展名为.vbp。
(二)程序的装入
一个应用程序包括4类文件,即窗体文件、标准模块文件、类模块文件和工程文件,这4类文件都有自己的文件名。但只要装入工程文件,就可以自动把与该工程有关的其他3类文件装入内存。
四、程序的运行
(一)运行模式
Visual Basic应用程序可以在两种模式下运行,一种是解释运行模式,一种是编译运行模式。
(二)运行程序
1.解释运行
2.生成可执行文件
五、Visual Basic应用程序的结构与工作方式
(一)Visual Basic应用程序的构成
Visual Basic应用程序通常由3类模块组成,即窗体模块、标准模块和类模块。
(二)事件驱动
事件是可以由窗体或控件识别的操作。事件驱动应用程序的典型操作序列为:
(1)启动应用程序,加载和显示窗体;
(2)窗体或窗体上的控件接收事件。事件可以由用户引发(例如键盘操作),可以由系统引发(例如定时器事件),也可以由代码间接引发(例如,当代码加载窗体时的Load事件);
(3)如果相应的事件过程中存在代码,则执行该代码;
(4)应用程序等待下一次事件
第四章
一、数据类型
(一)基本数据类型
数据类型Visual Basic6.0提供的基本数据类型主要有字符串型和数值型,此外还提供了字节、货币、对象、日期、布尔和变体数据类型。
(二)用户定义的数据类型
用户可以利用Type语句定义自己的数据类型,其格式如下:Type 数据类型名
数据类型元素名 As 类型名数据类型元素名 As 类型名……
End Type
(三)枚举类型
所谓“枚举”是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。
枚举类型放在窗体模块、标准模块或公用类模块中的声明部分,通过Enum语句来定义,格式如下:
[Public|Private]Enum类型名称成员名[=常数表达式]成员名[=常数表达式] ……
End Enum
二、常量和变量
(一)常量
Visual Basic中的常量分为两种,一种是文字常量,一种是符号常量。
(二)变量
1.命名规则
变量是一个名字,给变量命名时应遵循以下规则:
(1)名字只能由字母、数字和下划线组成;
(2)名字的第一个字符必须是英文字母,最后一个字符可以是类型说明符;
(3)名字的有效字符为255个;
(4)不能用Visual Basic的保留字作变量名,但可以把保留字嵌入变量名中;同时,变量名也不能是末尾带有类型说明符的保留字。
2.变量的类型和定义
任何变量都属于一定的数据类型,包括基本数据类型和用户定义的数据类型。在Visual Basic中,可以用下面几种方式来规定一个变量的类型:
(1)用类型说明符来标识。
(2)在定义变量时指定其类型
(3)用DefType语句定义
(4)用类型说明符定义的变量,在使用时可以省略类型说明符。
(三)变体类型变量
1.Variant变量的定义
Variant变量可以用普通数据类型变量的格式定义,也可以默认定义。
2.Variant变量值的内部表示
Variant变量所存放的值都有一个内部表示,在执行比较等操作时,Variant变量根据其内部表示确定如何操作。向Variant变量赋值时,Visual Basic以最紧凑(需最小存储空间)的表示方式存储该值,并可根据需要改变表示方式。
3.Variant变量中的数值
在Variant变量中存放数值时,Visual Basic以尽量紧凑的方式存储。
4.Variant变量中的字符串
在对存放字符串的Variant变量进行操作时可能会产生歧义。当用“+”运算符对两个Variant变量进行运算时,如果两个变量都是数值,则执行数值相加运算;如果两个变量中存放的都是字符串,则执行字符串连接操作。如果一个变量中是数值而另一个变量中是字符串,则情况就复杂了。Visual Basic先试着将字符串转换为数值,如果转换成功则进行相加运算,不成功则把另一个数值转换成字符串,然后对两个字符串进行连接,形成一个新的字符串。
5.Variant变量中的空值(Empty)
Variant变量在被赋值前为空值(内部表示为Empty或0),它不同于数值0,不同于空字符串(″″),也不同于Null(见下)。通过IsEmpty函数可以测试一个变量自建立以来是否被赋过值。
6.Variant变量中的Null值
Variant变量可以取一个特殊值---Null,该值通常在数据库应用程序中用来指出未完成或漏掉的数据。Null值具有以下一些特性;
(1)“蔓延性”。如果表达式中任一部分为Null,则整个表达式的值即为Null。
(2)如果向函数传送Null、值为Null的Variant变量或结果为Null的表达式,则会使大多数函数返回Null值。
(3)Null值会在返回Variant变量的内部函数中蔓延。
三、变量的作用域
(一)局部变量与全局变量
根据变量的定义位置和所使用的变量定义语句的不同,Visual Basic中的变量可以分为3类,即局部(Local)变量、模块(Module)变量及全局(Public)变量,其中模块变量包括窗体模块变量和标准模块变量。
(二)默认声明
默认定义的变量不需要使用Dim语句,因此比较方便,并能节省代码,但有可能带来麻烦,使程序出现无法预料的结果,而且较难查出错误。
四、常用内部函数
(一)转换函数
1.取整函数Int和Fix
2.数制转换函数
3.类型转换函数
4.格式输出函数
(二)数学函数
1.三角函数
2.绝对值函数(Abs)
3.符号函数(Sgn)
4.平方根函数(Sqr)
5.指数和对数函数(Exp、Log)
(三)日期和时间函数
1.Microsoft Windows的计时系统
2.日期函数
3.时间函数
4.日期/时间数值化函数
5.日期/时间运算函数
6.用变体类型表示日期
(四)随机数函数
1.随机数函数Rnd
2.Randomize语句
五、字符处理与字符串函数
1.删除空白字符函数
(1)LTrim$(字符串):去掉“字符串”左边的空白字符;
(2)RTrim$(字符串):去掉“字符串”右边的空白字符;
(3)Trim$(字符串):去掉“字符串”两边的空白字符;
2.字符串截取函数
用来截取字符串的一部分,可以从字符串的左部、右部或中部截取。
(1)左部截取
格式eft$(字符串,n)
3.字符串长度测试函数
格式en(字符串)Len(变量名)
4.String$函数
格式:String$(n,ASCII码)String$(n,字符串)
5.空格函数
格式:Space$(n)
6.字符串匹配函数
在编写程序时,有时候需要知道是否在文本框中输入了某个字符串,这可以通过InStr函数来判断。
格式:InStr([首字符位置,]字符串1,字符串2[,n])
7.字母大小写转换
格式:Ucase$(字符串)Lcase$(字符串)
8.插入字符串语句Mid$
格式:Mid$(字符串,位置[,L])
六、运算符与表达式
(一)算术运算符
1.幂运算
2.浮点数除法与整数除法
3.取模运算
4.算术运算符的优先级
5.字符串连接
(二)关系运算符与逻辑运算符
1.关系运算符
2.逻辑运算符
(三)表达式的执行顺序
一个表达式可能含有多种运算,计算机按一定的顺序对表达式求值。一般顺序如下:
(1)首先进行函数运算;
(2)接着进行算术运算,其次序为:
幂(^)→取负(-)→乘、浮点除(*、/)→整除(\)→取模(Mod)→加、减(+、-)→连接(&)
(3)然后进行关系运算(=、>、<、<>、<=、>=);
(4)最后进行逻辑运算,顺序为:
Not→And→Or→Xor→Eqv→Imp
第五章
一、数据输出---Print方法
(一)Print方法
Print方法可以在窗体上显示文本字符串和表达式的值,并可在其他图形对象或打印机上输出信息。其一般格式为:
[对象名称.]Print[表达式表][,|;]
Print方法的格式和功能与BASIC语言中的PRINT语句类似,它们都可以用来进行输出操作。
(二)与Print方法有关的函数
1.Tab函数
格式:Tab(n)
2.Spc函数
格式:Spc(n)
3.空格函数
格式:Space$(n)
(三)格式输出
用格式输出函数Format$可以使数值或日期按指定的格式输出。一般格式为:
Format$(数值表达式,格式字符串)
该函数的功能是:按“格式字符串”指定的格式输出“数值表达式”的值。如果省略“格式字符串”,则Format$函数的功能与Str$函数基本相同,惟一的差别是,当把正数转换成字符串时,Str$函数在字符串前面留有一个空格,而Format$函数则不留空格。
(四)其他方法和属性
1.Cls方法
格式:[对象.]Cls
2.Move方法
格式:[对象.]Move左边距离[,上边距离][,宽度[,高度]]]
3.TextHeight和TextWidth方法
格式:[对象.]TextHeight(字符串)[对象.]TextWidth(字符串)
二、数据输入-InputBox函数
InputBox函数可产生一个对话框,这个对话框作为输入数据的界面,等待用户输入数据,并返回所输入的内容。其格式为:InputBox(prompt,[,title][,default][,xpos,ypos][,helpfile,context]该函数有7个参数
三、MsgBox函数和MsgBox语句
(一)MsgBox函数
MsgBox函数的格式如下:
MsgBox(msg[,type][,title][,helpfile,context]该函数有5个参数
(二)MsgBox语句
MsgBox函数也可以写成语句形式,即:
MsgBox Msg$[,type%][,title$][,helpfile,context]
各参数的含义及作用与MsgBox函数相同,由于MsgBox语句没有返回值,因而常用于较简单的信息显示。
四、字形
(一)字体类型和大小
1.字体类型
字体类型通过FontName属性设置,一般格式为:[窗体.][控件.]|Printer.FontName[=″字体类型″]
2.字体大小
字体大小通过FontSize属性设置,一般格式为:FontSize[=点数]
这里的“点数”用来设定字体的大小。在默认情况下,系统使用最小的字体,“点数”为9。如果省略“=点数”,则返回当前字体的大小。
(二)其他属性
1.粗体字
粗体字由FontBold属性设置,一般格式为:FontBold[=Boolean]
该属性可以取两个值,即True和False。当FontBold属性为True时,文本以粗体字输出,否则按正常字输出。默认为False。
2.斜体字
斜体字通过FontItalic属性设置,其格式为:FontItalic[=Boolean]
当FontItalic属性被设置为True时,文本以斜体字输出。该属性的默认值为False
3.加删除线
格式为:
FontStrikethru[=Boolean]
如果把FontStrikethru属性设置为True,则在输出的文本中部画一条直线,直线的长度与文本的长度相同。该属性的默认值为False。
4.加下划线
下划线即底线,用FontUnderline属性可以给输出的文本加上底线。其格式为:FontUnderline[=Boolean]
如果FontUnderline属性被设置为True,则可使输出的文本加下划线。该属性的默认值为False。在上面的各种属性中,可以省略方括号中的内容。在这种情况下,将输出属性的当前值或默认值。
5.重叠显示
当以图形或文本作为背景显示新的信息时,有时候需要保留原来的背景,使新显示的信息与背景重叠,这可以通过FontTransParent属性来实现,格式如下:FontTrnasParent[=Boolean]
如果该属性被设置为True,则前景的图形或文本可以与背景重叠显示;如果被设置为False,则背景将被前景的图形或文本覆盖。
五、打印机输出
(一)直接输出
所谓直接输出,就是把信息直接送往打印机,所使用的仍是Print方法,只是把Print方法的对象改为Printer,其格式为rinter.Print[表达式表]
(二)窗体输出
在Visual Basic中,还可以用PrintForm方法通过窗体来打印信息,其格式为:[窗体.]PrintForm
第六章
一、文本控件
与文本有关的标准控件有两个,即标签和文本框。程序运行时标签中只能显示文本,用户不能进行编辑,而在文本框中既可显示文本,又可输入文本。
(一)标签
1.标签的属性、事件和方法
标签的部分属性与窗体及其他控件相同,包括:
FontBold FontItalic FontName FontSize FontUnderline Height Left Name Top Visible Width
(二)文本框
文本框是一个文本编辑区域,在设计阶段或运行期间可以在这个区域中输入、编辑和显示文本,类似于一个简单的文本编辑器。
1.文本框属性
2.选择文本
3.文本框的事件和方法
4.文本框的应用
二、图形控件
Visual Basic中与图形有关的标准控件有4种,即图片框、图像框、直线和形状。
(一)图片框和图像框
1.与窗体属性相同的属性
2.CurrentX和CurrentY属性
3.Picture属性
4.Stretch属性
(二)图形文件的装入
1.图片框与图像框的区别
2.在设计阶段装入图形文件
(三)直线和形状
1.属性
三、按钮控件
属性和事件
在应用程序中,命令按钮通常用来在单击时执行指定的操作。它的属性包括Caption、Enˉabled、FontBold、FontItalic、FontName、FontSize、FontUnderline、Height、Left、Name、Top、Visible、Width。此外,它还有以下属性:
1.Cancel
2.Default
3.Style属性
4.Picture属性
5.DownPicture属性
6.DisabledPicture属性
四、选择控件-复选框和单选按钮
(1)Value属性
(2)Alignment属性
(3)Style属性
五、选择控件-列表框和组合框
(一)列表框
1.属性
列表框所支持的标准属性包括Enabled、FontBold、FontItalic、FontName、FontUnderline、Height、Left、Top、Visible、Width。此外,列表框还具有以下特殊属性:
(1)Columns
(2)List
(3)ListCount
(4)ListIndex
(5)MultiSelect
(6)Selected
(7)SelCount
(8)Sorted
(9)Style
(10)Text
2.列表框事件
列表框接收Click和DblClick事件,但有时不用编写Click事件过程代码,而是当单击一个命令按钮或发生DblClick事件时,读取Text属性。
3.列表框方法
列表框可以使用AddItem、Clear和RemoveItem等方法,用来在运行程序期间修改列表框的内容。
(二)组合框
组合框(ComboBox)是由列表框和文本框的特性组合而成的控件。或兼有列表框和文本框两者特性的控件。
1.组合框属性
列表框的属性基本上都可用于组合框,此外它还有自己的一些属性。
(1)Style
(2)Text
2.组合框事件
3.组合框方法
六、滚动条
滚动条通常用来附在窗口上帮助观察数据或确定位置,也可用来作为数据输入的工具,被广泛地用于Windows应用程序中。
滚动条分为两种,即水平滚动条和垂直滚动条。
1.滚动条属性
滚动条的属性用来标识滚动条的状态,除支持Enabled、Height、Left、Caption、Top、Visible、Width等标准属性外,还具有以下属性:
(1)Max
(2)Min
(3)LargeChange
(4)SmallChange
(5)Value
2.滚动条事件
与滚动条有关的事件主要是Scroll和Change。
七、计时器
Visual Basic可以利用系统内部的计时器计时,而且提供了定制时间间隔的功能,用户可以自行设置每个计时器事件的时间间隔。
八、框架
框架(Frame?)是一个容器控件,用于将屏幕上的对象分组。
框架的属性包括Enabled、FontBold、FontName、FontUnderline、Height、Left、Top、Visible、Width。此外,Name属性用于在程序代码中标识一个框架,而Caption属性定义了框架的可见文字部分。
九、焦点与Tab顺序
(一)设置焦点
用下面的方法可以设置一个对象的焦点:
(1)在运行时单击该对象;
(2)运行时用快捷键选择该对象;
(3)在程序代码中使用SetFocus方法。
(二)Tab顺序
Tab顺序是在按Tab键时焦点在控件间移动的顺序。当窗体上有多个控件时,用鼠标单击某个控件,就可把焦点移到该控件中(控件中有获得焦点的方法)或者使该控件成为活动控件。除鼠标外,用Tab键也可以把焦点移到某个控件中。每按一次Tab键,可以使焦点从一个控件移到另一个控件。所谓Tab顺序,就是指焦点在各个控件之间移动的顺序
第七章
一、选择控制结构
(一)单行结构条件语句
单行条件语句比较简单,其格式如下:If条件Then then部分[Else else部分]
该语句的功能是:如果“条件”为True,则执行“then部分”,否则执行“else部分”。
(二)块结构条件语句
块结构条件语句与C、Ada等语言中的条件语句类似,一般格式如下:
If条件1 Then
语句块1
[ElseIf条件2Then
语句块2]
[ElseIf条件3Then
语句块3
]……
[Else
语句块n]
End If
块结构条件语句的功能是:如果“条件1”为True,则执行“语句块1”;否则如果“条件2”为True,则执行“语句块2”……否则执行“语句块n”,若无Else及其后面语句,则执行End If后面的语句。
块形式的条件语句简化为:
If条件Then
语句块
End If
(三)IIf函数
IIf函数可用来执行简单的条件判断操作,它是“If…Then…Else”结构的简写版本,IIf是“Immediate If”的缩略。
IIf函数的格式如下:
result=IIf(条件,True部分,False部分)
“result”是函数的返回值,“条件”是一个逻辑表达式。当“条件”为真时,IIf函数返回“True部分”,而当“条件”为假时返回“False部分”。“True部分”、或“False部分”可以是表达式、变量或其他函数。注意,IIf函数中的3个参数都不能省略,而且要求“True部分”、“False部分”及结果变量的类型一致。
二、多分支控制结构
情况语句的一般格式为:
Select Case 测试表达式
Case 表达式表列1
语句块1
[Case表达式表列2
[语句块2]]
……
[Case Else
[语句块n]]
End Select
情况语句以Select Case开头,以End Select结束。其功能是,根据“测试表达式”的值,一个语句块中选择符合条件的一个语句块执行。
三、For循环控制结构
For循环也称For-Next循环或计数循环。其一般格式如下:For循环变量=初值To终值[Step步长]
[循环体1]
[Exit For]
[循环体2]
Next[循环变量][,循环变量]……
其格式如下:While
四、当循环控制结构
其格式如下条件:
Wend
[语句块]
Wend
在上述格式中,“条件”为一布尔表达式。当循环语句的功能是:当给定的“条件”为True时,执行循环中的“语句块”(即循环体)。
五、Do循环控制结构
Do循环不仅可以不按照限定的次数执行循环体内的语句块,而且可以根据循环条件是True或False决定是否结束循环。Do循环的格式如下:
(1)Do
[语句块1]
[Exit Do]
Loop[While|Until循环条件]
(2)Do[While|Until循环条件]
[语句块2]
[Exit Do]
Loop
Do循环语句的功能是:当指定的“循环条件”为True或直到指定的“循环条件”变为False之前重复执行一组语句(即循环体)。
六、多重循环
Examda提示: 通常把循环体内不含有循环语句的循环叫做单层循环,而把循环体内含有循环语句的循环称为多重循环。例如在循环体内含有一个循环语句的循环称为二重循环。多重循环又称多层循环或嵌套循环。
七、GoTo型控制
(一)GoTo语句
GoTo语句可以改变程序执行的顺序,跳过程序的某一部分去执行另一部分,或者返回已经执行过的某语句使之重复执行。因此,用GoTo语句可以构成循环。
GoTo语句的一般格式为:
GoTo {标号|行号}
“标号”是一个以冒号结尾的标识符;“行号”是一个整型数,它不以冒号结尾。
(二)On…GoTo语句
On…GoTo语句类似于情况语句,用来实现多分支选择控制,它可以根据不同的条件从多种处理方案中选择一种。其格式为:
On数值表达式GoTo行号表列|标号表列
On-GoTo语句的功能是:根据“数值表达式”的值,把控制转移到几个指定的语句行中的一个语句行。“行号表列”或“标号表列”可以是程序中存在的多个行号或标号,相互之间用逗号隔开。
第八章
一、数组的概念
(一)数组的定义
在Visual Basic中,可以用4个语句来定义数组,这4个语句格式相同,但适用范围不一样。Dim用在窗体模块或标准模块中,定义窗体或标准模块数组,也可用于过程中ReDim 用在过程中Static 用在过程中
Public 用在标准模块中,定义全局数组
(二)默认数组与嵌套数组
在Visual Basic中,允许定义默认数组,并可用一个数组作为另一个数组的元素,即数组嵌套。
1.默认数组
默认数组就是默认数据类型的数组。在一般情况下,定义数组应指明其类型。
2.嵌套数组
在一般情况下,数组元素是一个具体的数据。而在Visual Basic中,可以用数组作为另一个数组的元素,这样的数组称为嵌套数组。
二、静态数组与动态数组
静态数组和动态数组由其定义方式决定,即:
1.用数值常数或符号常量作为下标定维的数组是静态数组;
2.用变量作为下标定维的数组是动态数组。
三、数组的基本操作
(一)数组元素的输入、输出和复制
1.数组的引用
数组的引用通常是指对数组元素的引用,其方法是,在数组后面的括号中指定下标。
2.数组元素的输入
数组元素一般通过For循环语句及InputBox函数输入。
3.数组元素的输出
数组元素的输出可以用Print方法来实现。
4.数组元素的复制
单个数组元素可以像简单变量一样从一个数组复制到另一个数组。
(二)For Each…Next语句
For Each…Next语句类似于For…Next语句,两者都用来执行指定重复次数的一组操作,但For Each…Next语句专门用于数组或对象“集合”(本书不涉及集合),其一般格式为:For Each成员In 数组
循环体
[Exit For]
……
Next[成员]
Examda提示:这里的“成员”是一个变体变量,它是为循坏提供的,并在For Each…Next结构中重复使用,它实际上代表的是数组中的每个元素。“数组”是一个数组名,没有括号和上下界。
用For Each…Next语句可以对数组元素进行处理,包括查询、显示或读取。它所重复执行的次数由数组中元素的个数确定,也就是说,数组中有多少个元素,就自动重复执行多少次。
四、数组的初始化
一般来说,数组变量可以通过以下3种方式定义:
(1)显示定义为Variant变量。例如im Numbers As Variant
(2)在定义时不指明类型。例如im Numbers
(3)不定义而直接使用。
五、控件数组
控件数组是针对控件建立的,因此与普通数组的定义不一样。可以通过以下两种方法来建立控件数组:
第一种方法,步骤如下:
(1)在窗体上画出作为数组元素的各个控件;
(2)单击要包含到数组中的某个控件,将其激活;
(3)在属性窗口中选择“(名称)”属性,并键入控件的名称;
(4)对每个要加到数组中的控件重复(2)、(3)步,键入与第(3)步中相同的名称。
当对第二个控件键入与第一个控件相同的名称后,Visual Basic将显示一个对话框,询问是否确实要建立控件数组。单击“是”将建立控件数组,单击“否”则放弃建立操作。
第二种方法,步骤如下:
(1)在窗体上画出一个控件,将其激活;
(2)执行“编辑”菜单中的“复制”命令(热键为Ctrl+C),将该控件放入剪贴板;
(3)执行“编辑”菜单中的“粘贴”命令(热键为Ctrl+V),将显示一个对话框,询问是否建立控件数组;
(4)单击对话框中的“是”按钮,窗体的左上角将出现一个控件,它就是控件数组的第二个因素,执行“编辑”菜单中的“粘贴”命令,或按热键Ctrl+V,建立控件数组中的其他元素。
Examda提示:控件数组建立后,只要改变一个控件的“Name”属性值,并把Index属性置为空(不是0),就能把该控件从控件数组中删除。控件数组中的控件执行相同的事件过程,通过Index属性可以决定控件数组中的相应控件所执行的操作。
第九章
一、Sub过程
(一)建立Sub过程
通用Sub过程的结构与前面多次见过的事件过程的结构类似。一般格式如下:[Static][Private][Public]Sub过程名[(参数表列)]
语句块
[Exit Sub]
[语句块]
End Sub
(二)调用Sub过程
调用引起过程的执行。也就是说,要执行一个过程,必须调用该过程。
Sub过程的调用有两种方式,一种是把过程的名字放在一个Call语句中,一种是把过程名作为一个语句来使用。
1.用Call语句调用Sub过程
格式:Call过程名[(实际参数)]
2.把过程名作为一个语句来使用
在调用Sub过程时,如果省略关键字Call,就成为调用Sub过程的第二种方式。与第一种方式相比,它有两点不同:
(1)去掉关键字Call;
(2)去掉“实际参数”的括号。
(三)通用过程与事件过程
[Private|Public]Sub控件名事件名(参数表) 语句组End Sub
窗体事件过程的一般格式为:
[Private|Public]Sub Form事件名(参数表) 语句组End Sub
二、Function过程
(一)建立Function过程
Function过程定义的格式如下:[Static][Private][Public]Function过程名[(参数表列)][As类型] [语句块]
[过程名=表达式] [Exit Function] [语句块] End Function
(二)调用Function过程
Function过程的调用比较简单,因为可以像使用Visual Basic内部函数一样来调用Function过程。实际上,由于Function过程能返回一个值,因此完全可以把它看成是一个函数,它与内部函数(如Sqr、Str$、Chr$等)没有什么区别,只不过内部函数由语言系统提供,而Function过程由用户自己定义。
三、参数传送
在Visual Basic中,通常把形式参数叫做“参数”,而把实际参数叫做“自变量”。
(一)形参与实参
Examda提示: 形参是在Sub、Function过程的定义中出现的变量名,实参则是在调用Sub或Function过程时传送给Sub或Function过程的常数、变量、表达式或数组。在Visual Basic中,可以通过两种方式传送参数,即按位置传送和指名传送。
(二)引用
在Visual Basic中,参数通过两种方式传送,即传地址和传值,其中传地址习惯上称为引用。在默认情况下,变量(简单变量、数组或数组元素以及记录)都是通过“引用”传送给Sub或Function过程。在这种情况下,可以通过改变过程中相应的参数来改变该变量的值。这意味着,当通过引用来传送实参时,可以改变传送给过程的变量的值。
(三)传值
传值就是通过值传送实际参数,即传送实参的值而不是传送它的地址。在这种情况下,系统把需要传送的变量复制到一个临时单元中,然后把该临时单元的地址传送给被调用的通用过程。由于通用过程没有访问变量(实参)的原始地址,因而不会改变原来变量的值,所有的变化都是在变量的副本上进行的。
在Visual Basic中,传值方式通过关键字ByVal来实现。也就是说,在定义通用过程时,如果形参前面的关键字ByVal,则该参数用传值方式传送,否则用引用(即传地址)方式传送。
(四)数组参数的传送
Visual Basic允许把数组作为实参传送到过程中。
用数组作为过程的参数时,应在数组名的后面加上一对括号,以免与普通变量相混淆。
四、可选参数与可变参数
Visual Basic6.0提供了十分灵活和安全的参数传送方式,允许使用可选参数和可变参数。在调用一个过程时,可以向过程传送可选的参数或者任意数量的参数。
五、对象参数
Examda提示: 对象作为参数与用其他数据类型作为参数的过程没有什么区别,其格式为:Sub过程名(形参表) 语句块 [Exit Sub] ……End Sub
“形参表”中形参的类型通常为Control或Form。注意,在调用含有对象的过程时,对象只能通过传地址方式传送。因此在定义过程时,不能在其参数前加关键字ByVal。
六、局部内存分配
有时候,在过程结束时,可能不希望失去保存在局部变量中的值。如果把变量声明为全局变量或模块级变量,则可解决这个问题。但如果声明的变量只在一个过程中使用,则这种方法并不好。为此,Visual Basic提供了一个Static语句,其格式如下:
Static变量表
其中“变量表”的格式如下:
变量[()][As类型][,变量[()][As类型]]……
七、Shell函数
Shell函数的格式如下:
Shell(命令字符串[,窗口类型])
第十章
一、KeyPress事件
在窗体上画一个控件(指前面所讲的可以发生KeyPress事件的控件),并双击该控件,进入程序代码窗口后,从“过程”框中选取KeyPress,即可定义KeyPress事件过程。一般格式为:
Private Sub Text1 _ KeyPress(KeyAscii As Integer)
End Sub
二、KeyDown和KeyUp事件
KeyDown和KeyUp事件的参数也有两种形式,其中
Index As Integer
只用于控件数组,而
KeyCode As Integer,Shift As Integer
用于单个控件。
三、鼠标事件
为了实现鼠标操作,Visual Basic提供了3个过程模板:
(一)压下鼠标键事件过程
Sub Form_MouseDown(Button As Integer,Shift As Integer,x As Single,y As Single)End Sub
(二)松开鼠标键事件过程
Sub Form_MouseUp(Button As Integer,Shift As Integer,x As Single,y As Single)End Sub
(三)移动鼠标光标事件过程
Sub Form_MouseMove(Button As Integer,Shift As Integer,x As Single,y As Single)End Sub
四、鼠标光标的形状
(一)MousePointer属性
鼠标光标的形状通过MousePointer属性来设置。该属性可以在属性窗口中设置,也可以在程序代码中设置。
MousePointer的属性是一个整数,可以取0~15。
(二)设置鼠标光标形状
MousePointer属性可以通过代码设置,也可以通过属性窗口设置。
1.在程序代码中设置MousePointer属性
在程序代码中设置MousePointer属性的一般格式为:对象.MousePointer=设置值
2.在属性窗口中设置MousePointer属性
单击属性窗口中的MousePointer属性条,然后单击设置框右端向下的箭头,将下拉显示MousePointer的15个属性值。
3.自定义鼠标光标
如果把MousePointer属性设置为99,则可通过MouseIcon属性定义自己的鼠标光标。有以下两种方法:
(1)如果在属性窗口中定义,可首先选择所需要的对象,再把MousePointer属性设置为“99-Custom”,然后设置MouseIcon属性,把一个图标文件赋给该属性(与设置Picture属性的方法相同)。
(2)如果用程序代码设置,则可先把MousePointer属性设置为99,然后再用LoadPicture函数把一个图标文件赋给MouseIcon属性。
4.鼠标光标形状的使用
在Windows中,鼠标光标的应用有一些约定俗成的规则。为了与Windows环境相适应,在应用程序中应遵守这些规则,主要有:
(1)表示用户当前可用的功能,如“I”形鼠标光标(属性值3)表示插入文本;十字形状(属性值2)表示画线或圆,或者表示选择可视对象以进行复制或存取。
(2)表示程序状态的用户可视线索,如沙漏鼠标(属性值11)表示程序忙,一段时间后将控制权交给用户。
(3)当坐标(X,Y)值为0时,改变鼠标光标形状。
五、拖放
(一)与拖放有关的属性、事件和方法
1.属性
有两个属性与拖放有关,即DragMode和DragIcon
2.事件
与拖放有关的事件是DragDrop和DragOver。
(二)自动拖放
(三)手动拖放
第十一章
一、Visual Basic中的菜单
菜单的基本作用有两个,一是提供人机对话的界面,以便让使用者选择应用系统的各种功能;二是管理应用系统,控制各种功能模块的运行。
在实际应用中,菜单可分为两种基本类型,即弹出式菜单和下拉式菜单。
二、菜单编辑器
Visual Basic中的菜单通过菜单编辑器,即菜单设计窗口建立。可以通过以下4种方式进入菜单编辑器:
(1)执行“工具”菜单中的“菜单编辑器”命令。
(2)使用热键Ctrl+E。
(3)单击工具栏中的“菜单编辑器”按钮。
(4)在要建立菜单的窗体上单击鼠标右键,将弹出一个菜单,然后单击“菜单编辑器”命令。
三、菜单项的控制
(一)有效性控制
菜单中的某些菜单项应能根据执行条件的不同进行动态变化,即当条件满足时可以执行,否则不能执行。
菜单项的“有效”属性,菜单项的有效性就是通过该属性来控制的。
(二)菜单项标记
所谓菜单项标记,就是在菜单项前加上一个“”。它有两个作用:一是可以明显地表示当前某个(或某些)命令状态是“On”或“Off”;二是可以表示当前选择的是哪个菜单项。
(三)键盘选择
用键盘选取菜单通常有两种方法,即热键和访问键(Access Key)。
四、菜单项的增减
菜单项的增减通过控件数组来实现。一个控件数组含有若干个控件,这些控件的名称相同,所使用的事件过程相同,但其中的每个元素可以有自己的属性。和普通数组一样,通过下标(Index)访问控件数组中的元素。控件数组可以在设计阶段建立,也可以在运行时建立。
建立弹出式菜单通常分两步进行:首先用菜单编辑器建立菜单,然后用PopupMenu方法弹出显示。考试大提示: 第一步的操作与前面介绍的基本相同,惟一的区别是,必须把菜单名(即主菜单项)的“可见”属性设置为False(子菜单项不要设置为False)。PopupMenu方法用来显示弹出式菜单,其格式为:对象.PopupMenu菜单名,Flags,X,Y,BoldCommand !
第十二章
一、概述
(一)对话框的分类与特点
1.对话框的分类
Visual Basic中的对话框分为3种类型,即预定义对话框、自定义对话框和通用对话框。
2.对话框的特点
(1)在一般情况下,用户没有必要改变对话框的大小,因此其边框是固定的。
(2)为了退出对话框,必须单击其中的某个按钮,不能通过单击对话框外部的某个地方关闭对话框。
(3)在对话框中不能有最大化按钮(Max Button)和最小化按钮(Min Button),以免被意外地扩大或缩成图标。
(4)对话框中不是应用程序的主要工作区,只是临时使用,使用后就关闭。
(5)对话框中控件的属性可以在设计阶段设置,但在有些情况下,必须在运行时(即在代码中)设置控件的属性,因为某些属性设置取决于程序中的条件判断。
Visual Basic的预定义对话框体现了前面4个特点,在定义自己的对话框(见下一节)时,也必须考虑到上述特点。
(二)自定义对话框
如前所述,预定义对话框(信息框和输入框)很容易建立,但在应用上有一定的限制。例如,对于信息框来说,只能显示简单的信息、一个图标和有限的几种命令按钮,程序设计人员不能改变命令按钮的说明文字,也不能接收用户输入的任何信息。用输入框可以接收输入的信息,但只限于使用一个输入区域,而且只能使用“确定焙汀叭∠绷街置畎磁ァ?br>如果需要比输入框或信息框功能更多的对话框,则只能由用户自己建立。
(三)通用对话框控件
用MsgBox和InputBox函数可以建立简单的对话框,即信息框和输入框。如果需要,也可以用上面介绍的方法,定义自己的对话框。当要定义的对话框较复杂时,将会花费较多的时间和精力。为此,Visual Basic6.0提供了通用对话框控件,用它可以定义较为复杂的对话框。
二、文件对话框
文件对话框分为两种,即打开(Open)文件对话框和保存(Save As)文件对话框。
三、其他对话框
用通用对话框控件除了能建立文件对话框外,还可以建立其他一些对话框,包括颜色对话框、字体对话框和打印对话框等。
(一)颜色(Color)对话框
颜色对话框用来设置颜色。它具有与文件对话框相同的一些属性,包括CancelError、DiˉalogTitle、HelpCommand、HelpContext、HelpFile和HelpKey,此外还有两个属性,即Color属性和Flags属性。
(二)字体(Font)对话框
在Visual Basic中,字体通过Font对话框或字体属性设置。利用通用对话框控件,可以建立一个字体对话框,并可在该对话框中设置应用程序所需要的字体。字体对话框具有以下属性:
1.CancelError、DialogTitle、HelpCommand、HelpContext、HelpFile和HelpKey
2.Flags属性
3.FontBold、FontItalic、FontName、FontSize、FontStrikeThru和FontUnderline
这些属性可以在对话框中选择,也可以通过程序代码赋值。
4.Max和Min属性
字体大小用点(一个点的高度是1/72英寸)量度。在默认情况下,字体大小的范围为1~2048个点,用Max和Min属性可以指定字体大小的范围。注意,在设置Max和Min属性之前,必须把Flags属性值设置为8192。
(三)打印(Printer)对话框
用打印对话框可以选择要使用的打印机,并可为打印处理指定相应的选项,如打印范围、数量等。打印对话框除具有前面讲过的CancelFrror、DialogTitle、HelpCommand、HelpContext、HelpFile和HelpKey等属性外,还具有以下属性。
1.Copies属性
指定要打印的文档的拷贝数。如果把Flags属性值设置为262144,则Copies属性值总为1。
2.Flags属性
3.FromPage和ToPage属性
指定要打印文档的页范围。如果要使用这两个属性,必须把Flags属性设置为2。
4.hDC属性
分配给打印机的句柄,用来识别对象的设备环境,用于API调用。
5.Max和Min属性
用来限制FromPage和ToPage的范围,其中Min指定所允许的起始页码,Max指定所允许的最后页码。
6.PrinterDefault属性
该属性是一个布尔值,在默认情况下为True。当该属性值为True时,如果选择了不同的打印设置(如将Fax作为默认打印机等),Visual Basic将对Win.ini文件作相应的修改。如果把该属性设为False,则对打印设置的改变不会保存在Win.ini文件中,并且不会成为打印机的当前默认设置。
打印对话框通过ShowPrint或Action属性(=5)建立。