第八章 界面设计 第 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