VB程序设计 第八章 界面设计 下载本文

第八章 界面设计 第 1 页 共 47 页

第八章 界面设计

主要内容

? 通用对话框控件(CommonDialog)菜单设计 ? 多重窗体和多文档界面 ? 工具栏和状态栏 ? RichTextBox控件 ? 应用程序向导 ? 打印机输出 ? 剪贴板对象

8.1 通用对话框(CommonDialog) 8.1.1 通用对话框

将通用对话框添加到工具箱内的方法:

单击工程/部件 选定Microsoft CommDialog Control 6.0 按确定打开通用对话框。将CommonDialog控件添加到工具箱,在设计状态,CommonDialog控件以图标

的形式显示在窗体上,通用对话框控件默认名(Name)为CommonDialog1,控件大小不能改变,在程序运行时,控件本身被隐含。

通用对话框控件在Vb与windows动态链接库Commdlg.dll的例程之间提供了一个接口。为了能用这个控件创建对话框,动态链接库Commdlg.dll必须在Windows的system目录下。

要在程序中显示通用对话框中的某个对话框,可以用语句:通用对话框.action=属性值或者通用对话框.方法show 例如:

CommonDialog1.action=1 CommonDialog1.ShowOpen

作用都是打开通用对话框CommonDialog1的打开文件对话框。

通用对话框的Action属性和Show方法一览表

通用对话框的类型 显示文件打开(Open) 对话框 显示另存为(Save As) 对话框 显示颜色(Color) 对话框 显示字体(Font) 对话框 显示打印机(Printer) 对话框 显示帮助(Help) 对话框 通用对话框具有的主要共同属性:

Action属性值 1 2 3 4 5 6 方法Show ShowOpen ShowSave ShowColor ShowFont ShowPrinter ShowHelp (1) DialogTiltle

通用话框的每个特定对话框都有默认的标题,DialogTiltle属性可以由用户自行设计对话框标题栏上显示的内容。

Visual Basic6.0 第 页 共 47 页 1

第八章 界面设计 第 2 页 共 47 页

(2) CancelError

通用对换框有一个“取消”按钮,用于向应用程序表示用户想取消当前操作。当CancelError属性为True时,选择“取消”按钮,通用对话框产生错误警告并自动将错误对象Err.Number置为32755(cdCancel)以便供程序判断;

当CancelError属性为False(缺省) 时,则当击“取消”按钮,不产生错误警告。

(3) Flags

这个属性可修改每个具体的对话框的默认操作。不同的对话框的Flags属性各不相同。可以使用VB符号常量或一个整数(十进制或十六进制整数)给其赋值。

8.1.2 “打开”文件对话框

“打开”文件对话框如下图所示:

打开“文件”对话框并不能真正“打开”文件,而仅仅用来选择一个文件,至于选择以后的处理包括打开、显示等,“打开”文件对话框本身是无能为力的。 属性

(1)FileName

该属性为字符串,用于设置和得到用户所选定的文件名(包括路径名)

(2)FileTitle

该属性设计时无效,在程序中为只读,用于返回文件名(不包含路径)

(3)Filter

该属性用于过滤文件类型,使文件列表框中只显示指定类型的文件。制定的属性值将被加载在“打开”文件对话框的“文件类型”列表框中。可以在设计时设置该属性,也可以在代码中设置该属性。其格式为: 文件说明|文件类型 (或称为 描述符|过滤器)

过滤器由统配符和文件的扩展名组成。

例如:

Documents(*.DOC)|*.DOC|Text Files(*.TXT)|*.txt|All Files|*.*

Visual Basic6.0 第 页 共 47 页 2

第八章 界面设计 第 3 页 共 47 页

又例如:

图形文件|*.jpeg;*.gif|图元文件|*.wmf;*.emf|图标文件|*.ico;*.cur|位图文件|*.bmp;*.did

(4)FilterIndex

决定在文件类型列表框中默认显示第几组类型的文件。当FilterIndex=1表示显示第一组类型的文件。即例如中的*.DOC类文件。对于例如中的*.doc,*.txt,*.*的FilterIndex依次为1,2,3。如果FilterIndex>3或为0(不能小于0,否则出错)都是显示第一组类型的文件即*.doc类型文件。

(5)InitDir

该属性用来指定打开对话框中的初始目录(表现在打开对话框的查找范围)。若显示当前目录不需设置。

8.1.3 “另存为”对话框

另存为对话框没有提供真正的存储文件操作,仍需要编程完成储存操作。 属性

DefaultExt:设置对话框默认文件类型即缺省扩展名。

[例8.1]用命令按钮的Click事件显示打开文件和另存为对话框。

[例8.1]在myvb\\vb8\\ex8_1\\lbc8_1.vbp dim opti%

Private Sub Command1_Click()

On Error GoTo nofile '设置错误陷阱,转移到指定的位置执行

With CommonDialog1 .InitDir = \

.Filter = \文本文件|*.txt|演示文稿|*.ppt|Word文档|*.doc\

.CancelError = True '如果按下对话框的取消按钮,则将错误对象的number设置为32755 .FilterIndex = 3 '在文件类型下拉列表框首先显示Word文档,(0、4、5、...组范围之外)和1文本文件,2演示文稿 If opti = 0 Then

.ShowOpen '此句放在这里为宜,演示放在InitDir和Filter位置的结果 opti = 1

Command1.Caption = \打开另存为对话框\ Else .ShowSave opti = 0

Command1.Caption = \打开文件对话框\ End If End With

Label1.Caption = CommonDialog1.FileName '显示选择的文件名(包括路径)

Visual Basic6.0 第 页 共 47 页 3

第八章 界面设计 第 4 页 共 47 页

Label2.Caption = CommonDialog1.FileTitle '显示选择的文件名 Exit Sub

nofile: '错误处理程序

If Err.Number = 32755 Then '单击了取消按钮 Label1.Caption = \放弃操作\ Else

Label1.Caption = \其它操作\ End If End Sub

[补例8.1]简单的文本编辑程序,当按“打开”按钮,在“打开”对话框按“取消”按钮,显示有关信息。

[程序在myvb\\vb8\\blex8_1文件夹内]

Private Sub Command1_Click()

CommonDialog1.CancelError = False

On Error GoTo hand ‘为防止按对话框控件内的取消按钮而设

CommonDialog1.InitDir = App.Path '设定本工程所在目录为初始化目录

CommonDialog1.Filter = \工程文件|*.vbp|文本文件|*.txt|窗体文件|*.frm\ CommonDialog1.FilterIndex = 1 CommonDialog1.ShowOpen

'应设置文本框控件的ScrollBars = both,MultiLine = True.这两个属性只能在设计时指定

Open CommonDialog1.FileName For Input As #1 Do While Not EOF(1)

Line Input #1, inputdata

txtNoteEdit.Text = txtNoteEdit.Text + inputdata + _ Chr(13) + Chr(10) Loop

Close #1 Exit Sub hand: End Sub

8.1.4 “颜色”对话框 “颜色”对话框如下图所示

Visual Basic6.0 第 页 共 47 页 4