第 10章 高级界面设计本章,UQF 介绍菜单,对话框,多文档界面,工具栏等一些与界面设计有关的知识 。
退出
10.1 菜单
10.2 对话框
10.3 多重文档界面( MDI)
10.4 文件操作控件
10.5 工具栏
10.1 菜单在应用程序窗口中加入菜单可以使用户方便,直观地选择命令和选项,让用户感到操作更简单,快捷 。
在 VB中,利用系统提供的工具可以非常方便地建立下拉菜单和弹出式菜单 。
10.1.1 下拉菜单在关闭状态下,下拉菜单作为菜单栏位于窗口的标题栏下面,当单击其中某一项时,下拉出其相应的子菜单,如图 10-1所示 。
Visual Basic中的菜单通过菜单编辑器,即菜单设计窗口建立 。 将要建立下拉菜单的窗体设为活动窗体后,可以通过 4种方法进入菜单编辑器:
( 1) 执行,工具,菜单中的,菜单编辑器,命令 。
( 2) 使用热键 [Ctrl+E]。
( 3) 单击工具栏中的,菜单编辑器,按钮 。
( 4) 在要建立菜单的窗体上单击鼠标右键,将弹出一个菜单,在该菜单中单击,菜单编辑器,命令 。
通过以上任一方法,均可调出菜单编辑器,如图
10-2所示 。
菜单编辑器窗口分为 3部分,即数据区,编辑区和菜单项显示区 。
【 例 10.1】 菜单设计 。 建立一个如图 10-3所示的菜单,用户可以通过选择菜单中的菜单项改变文本框中内容的外观 。
设计步骤如下 。
( 1) 建立控件在窗体上添加一个文本框,将它的 Text属性置为空 。
( 2) 设计菜单在窗体设计状态下选择,工具,菜单下的,菜单编辑器,命令,调出菜单设计窗口 。 在菜单设计窗口中,按表 10-1设计菜单项 。
当完成所有的输入工作后,菜单设计窗口就成为如图 10-4所示的窗口,单击,确定,按钮退出就完成了菜单的建立过程 。
( 3) 把代码连接到菜单上在窗体窗口单击菜单标题,然后在下拉菜单中单击要连接代码的菜单项,在屏幕上就会出现代码窗口,
并自动给出事件过程的头尾语句 。 只要在头尾语句间输入代码即可 。
程序如下:
Private Sub ct_Click()
Text1.FontBold = Not
Text1.FontBold
End Sub
Private Sub er_Click()
Text1.FontSize = 20
End Sub
Private Sub ht_Click()
Text1.FontName = "黑体 "
End Sub
Private Sub lsh_Click()
Text1.FontName = "隶书 "
End Sub
Private Sub quit_Click()
End
End Sub
Private Sub sh_Click()
Text1.FontSize = 12
End Sub
Private Sub st_Click()
Text1.FontName = "宋体 "
End Sub
Private Sub xhx_Click()
Text1.FontUnderline = Not
Text1.FontUnderline
End Sub
Private Sub xt_Click()
Text1.FontItalic = Not
Text1.FontItalic
End Sub
10.1.2 弹出式菜单与下拉菜单不同,弹出式菜单不需要在窗口顶部下拉打开,而是通过单击鼠标右键在窗体的任意位置打开,因而使用方便,具有较大的灵活性。
建立弹出式菜单通常有两步:首先用菜单编辑器建立菜单,然后用 PopupMenu方法弹出显示。第一步的操作与前面介绍的基本相同,唯一的区别是如果不想在窗体顶部显示该菜单,就应把菜单名(即主菜单项)
的“可见”属性设置为 False(子菜单项不要设置为
False)。
PopupMenu方法用来显示弹出式菜单,其格式为:
[对象,] PopupMenu 菜单名
[,Flags[,x[,y[,BoldCommand]]]]
【 例 10.2】 我们将例 10.1中的,字形,菜单的内容作为弹出式菜单的内容 。
我们只需在代码窗口添加如下代码:
Private Sub Form_MouseDown(Button As
Integer,Shift As Integer,_
X As Single,Y As Single)
If Button = 2 Then
PopupMenu zx,2
End If
End Sub
运行程序,鼠标右键单击窗体,即可弹出,字形,
菜单的菜单内容 。 如果不想在窗体顶部显示,字形,
菜单,则可在窗体编辑器中将 zx主菜单项的,可见,
属性设为 False即可 。
10.2 对话框对话框是应用程序在执行过程中与用户进行交流的窗口 。 在 VB中,可以利用系统提供的通用对话框,
也可以根据需要自己设计对话框 。
10.2.1 通用对话框
VB提供了一组基于 Windows的常用的标准对话框界面,用户可以充分利用通用对话框( Common Dialog)
控件在窗体上创建 6种标准对话框,它们分别为打开
( Open)、另存为( Save As)、颜色( Color)、字体( Font)、打印机( Printer)和帮助( Help)对话框。程序设计中如果所有的对话框都由设计人员来完成,将会耗费大量的时间,而利用系统提供的通用对话框则可以节省很大的工作量。
通用对话框不是标准控件,因此使用前需要先把通用对话框控件添加到工具箱中,操作步骤为:
( 1)选择“工程”菜单中的“部件”命令打开部件对话框,如图 10-5所示。
( 2)在控件标签中选定,Microsoft Common
Dialog Control 6.0” 。
( 3)最后选择“确定”按钮退出。
经过上面的操作后,通用对话框控件就出现在控件工具箱中,如果需要使用上面的某种对话框,我们就可以像使用标准控件一样把它添加到窗体中。
在设计状态,窗体上显示通用对话框图标,但在程序运行时,窗体上不会显示通用对话框,直到在程序中用 Action属性或 Show方法激活而调出所需的对话框。
通用对话框仅用于应用程序与用户之间进行的信息交互,是输入输出界面,不能实现打开文件、存储文件、设置颜色、字体打印等操作。如果想要实现这些功能还得靠编程实现。
1.通用对话框的基本属性
( 1) 基本属性
Name是通用对话框的名称属性,Index是由多个对话框组成的控件数组的下标 。 Left和 Top表示通用对话框的位置 。
( 2) Action功能属性该属性直接决定打开何种类型的对话框 。
0—— None:无对话框显示 。
1—— Open:打开文件对话框 。
2—— Save As:另存为对话框。
3—— Color:颜色对话框。
4—— Font:字体对话框。
5—— Printer:打印机对话框。
6—— Help:帮助对话框。
该属性不能在属性窗口内设置,只能在程序中赋值,用于调出相应的对话框。
( 3) DialogTitle(对话框标题)属性该属性是通用对话框标题属性,可以是任意字符串。
( 4) CancelError属性该属性表示用户在与对话框进行信息交互时,按下“取消”按钮时是否产生出错信息。
True:表示按下对话框中“取消”按钮时,便会出现错误警告。
False(缺省):表示按下对话框中的“取消”按钮时,不会出现错误警示。
对话框被打开后,有时为了防止用户在未输入信息时便使用取消操作,则可用该属性设置出错警告。
当该属性设为 True时,用户对对话框中的“取消”按钮一经操作,自动将错误标志 Err置为 32755( CDERR-
CANCEL),供程序判断。该属性值在属性窗口及程序中均可设置。
在通用对话框的使用过程中,除了上面的基本属性外,每种对话框还有自己的特殊属性。这些属性可以在属性窗口中进行设置,也可以在通用对话框控件的属性对话框中设置。对窗体上的通用对话框控件单击鼠标右键,在弹出的快捷菜单中选择“属性”即可调出通用对话框控件属性对话框如图( 10-6所示)。
该对话框中有 5个标签,可以分别对不同类型的对话框设置属性。例如,要对字体对话框设置,就选定字体标签。
2.使用通用对话框的方法在实际应用中,除了可以通过对通用对话框的
Action属性设置明确对话框的类型外,还可以使用 VB
提供的一组方法来打开不同类型的通用对话框 。 这些方法如下 。
ShowOpen:打开对话框 。
ShowSave:另存为对话框 。
ShowColor:颜色对话框 。
ShowFont:字体对话框 。
ShowPrinter:打印机对话框 。
ShowHelp:帮助对话框 。
如果在程序中有下面的语句:
Commondialog1.ShowOpen
或 Commondialog1.Action = 1
在运行到上面的语句时,系统就会调出“打开”
对话框。
10.2.2,打开,对话框在程序运行时,通用对话框的 Action属性被设置为 1,就立即弹出打开文件对话框 ( 如图 10-7所示 ) 。
打开文件对话框并不能真正打开一个文件,它仅仅提供一个打开文件的用户界面,供用户选择所要打开的文件,打开文件的具体工作还是要通过编程来完成 。
对于,打开,文件对话框,主要有下面几项属性需要设置 。
( 1) 对话框标题 ( DialogTitle) 属性
( 2) 文件名称 ( FileName) 属性
( 3) FileTitle( 文件标题 ) 属性
( 4) 初始化路径 ( InitDir) 属性
( 5) 过滤器 ( Filter) 属性
( 6) 标志 ( Flags) 属性
( 7) 缺省扩展名 ( DefaulText) 属性
( 8) 文件最大长度 ( MaxFileSize) 属性
( 9) 过滤器索引 ( FilterIndex) 属性
( 10) CancelError属性
【 例 10.4】 设计如图 10-9所示的运行界面,并为
,打开,按钮编写打开文本文件的代码,文本文件的内容显示在文本框中 。
,打开”按钮的事件过程如下:
Private Sub Open_Click()
Commondialog1.Action = 1
Text1.Text = ""
Open Commondialog1.FileName For Input As #1
Do While Not EOF(1)
Line Input #1,inputdata
Text1.Text=Text1.Text+inputdata+ vbNewLine
Loop
Close #1
End Sub
10.2.3,另存为,对话框
,另存为,对话框是当 Action为 2时的通用对话框 。
它为用户在存储文件时提供了一个标准用户界面,供用户选择或键入所要存入文件的驱动器,路径和文件名 。 同样,它并不能提供真正的存储文件操作,储存文件的操作需要编程来完成 。
,另存为,对话框所涉及的属性基本上和打开对话框一样,只是还有一个 DefaulText属性,它表示所存文件的缺省扩展名 。
10.2.4 颜色对话框
,颜色,对话框是当 Action为 3时的通用对话框,
如图 10-10所示,供用户选择颜色 。
10.2.5,字体,对话框
,字体,对话框是当 Action为 4时的通用对话框,
如图 10-11所示,供用户选择字体 。
对于,字体,对话框有下列重要属性 。
( 1) Color属性
( 2) FontName属性
( 3) FontSize属性
( 4 ) FontBold,FontItalic,
FontStrikethru,FontUnderline属性
( 5) Min,Max属性
( 6) Flags属性
10.2.6,打印,对话框
,打印,对话框是当 Action为 5时的通用对话框,
是一个标准打印对话窗口界面,如图 10-12所示 。,打印,对话框并不能处理打印工作,仅仅是一个供用户选择打印参数的界面,所选参数存于各属性中,再通过编程来处理打印操作 。
对于,打印,对话框,除了基本属性之外,还有下列重要属性:
( 1) Copies( 复制份数 ) 属性
( 2) FromPage( 起始页号 ),Topage( 终止页号 )
属性
10.2.7 帮助对话框
,帮助,对话框是当 Action为 6时的通用对话框,
是一个标准的帮助窗口,可以用于制作应用程序的在线帮助 。,帮助,对话框不能制作应用程序的帮助文件,只能将已制作好的帮助文件从磁盘中提取出来,
并与界面连接起来,达到显示并检索帮助信息的目的 。
对于,帮助,对话框,除了基本属性之外,还有下列重要属性:
( 1) HelpCommand( 帮助命令 ) 属性
( 2) HelpFile( 帮助文件 ) 属性
( 3) HelpKey( 帮助键 ) 属性
( 4) HelpConText( 帮助上下文 ) 属性
10.2.8,自定义,对话框
,自定义,对话框是用户所创建的含有控件的窗体 。 这些控件包括命令按钮,单选钮,检查框和文本框等,它们可以为应用程序接收信息 。 因此,创建自定义对话框就是建立一个窗体,在窗体上根据需要放置控件,通过设置属性值来自定义窗体的外观 。 用户可以根据实际需要或自己的喜好,综合利用系统提供的各种控件,设计出自己真正满意的对话框 。
一般来说,作为对话框的窗体与一般的窗体在外观上是有所区别的,对话框没有最大化最小化按钮,
不能改变它的大小,所以应对对话框做如表 10-7所示的属性设置 。
设计好自定义的对话框后,就要考虑如何显示对话框 。 显示对话框是用 Show方法,对话框分成两种类型:模式的和无模式的 。
10.3 多重文档界面( MDI)
多文档界面允许同时打开多个文档,每一个文档都显示在自己的被称为子窗体的窗体中,如我们非常熟悉的 Word 97,Excel 97等都是多文档界面 。 多文档界面由父窗体和子窗体组成 。 在 VB中,父窗体就是 MDI
窗体,子窗体就是指 MDIChild属性为 True的普通窗体 。
1.创建 MDI窗体用户要建立一个 MDI窗体,可以选择,工程,菜单中的,添加 MDI窗体,命令,弹出如图 10-14所示的
,添加 MDI窗体,对话框,选择,MDI窗体,,再单击
,打开,按钮 。
2.子窗体
MDI子窗体是一个 MDIChild属性为 True的普通窗体 。
因此,要创建一个 MDI子窗体,应先创建一个新的普通窗体,然后将它的 MDIChild属性置为 True。
MDI子窗体的设计与 MDI窗体无关,但在运行时总是包含在 MDI窗体中,当 MDI窗体最小化时,所有的子窗体都被最小化 。 每个子窗体都有自己的图标,但只有 MDI窗体的图标显示在任务栏中 。 子窗体相互之间没有约束关系,它们可以用不同的方式排列 。
3.与 MDI有关的方法和事件
( 1) Arrange方法该方法用来以不同的方式排列 MDI中的窗体或图标 。
其格式为:
<MDI窗体名 >.Arrange<方式 >
方式:是一个整数值,用来指定 MDI窗体中子窗体或图标的排列方式 。
( 2) 显示 MDI窗体及其子窗体的方法显示 MDI窗体及其子窗体的方法是 Show 。
( 3) QueryUnload事件当用户从 MDI窗体的控制菜单框中选择,关闭,命令,或者从提供的菜单项中选择,退出,命令时,系统就会试图卸载 MDI窗体,此时就会触发 QueryUnload
事件,然后每一个打开的子窗体也都触发该事件 。 若在 这些 QueryLoad事件过 程中 没有 代码,则取 消
QueryUnload事件,逐个卸载子窗体,最后,MDI窗体也被卸载 。
由于 QueryUnload事件在窗体卸载之前被触发,因此在窗体卸载以前可以给用户一个保存变动后的窗体信息的机会 。
10.4 文件操作控件为了适应在应用程序中处理文件的需要,VB提供了 3种文件系统控件:驱动器列表框 ( DriveListBox),
目录列表框 ( DirListBox ) 和 文 件 列 表 框
( FileListBox) 。 利用文件系统控件可以设计出用户所喜爱的,具有不同风格的对话框,利用它们进行文件管理十分方便 。
10.4.1 驱动器列表框驱动器列表框最重要的属性是 Drive属性,它用来设置当前驱动器,但不能在设计阶段使用此属性,必须在程序中设置或引用,格式如下:
[对象,]drive[=drive]
其中,对象是驱动器列表框的名字。当用户单击列表框中某一驱动器名时,该驱动器名就成为该列表框的 Drive 属性值,也就是说,Drive属性可以用来设置当前驱动器,也可以接收并返回用户选定的驱动器名。例如:
Drive1.drive="a"
10.4.2 目录列表框目录列表框用于显示当前磁盘驱动器下的目录 。
目录列表框有一个重要属性 —— Path( 路径 ) 属性,用来设置和返回当前的路径 。 Path属性也不能在设计状态时设置 。 格式如下:
[对象,]Path[=pathName]
其中,对象是指目录列表框或文件列表框 。
pathName是一个路径名字符串 。 同驱动器列表框一样,
每次 Path属性的改变都会引发 Change事件 。
10.4.3 文件列表框文件列表框列出在当前目录下的文件名 。 由于文件数量多,无法在列表框中全部显示出来,VB自动加上垂直滚动条用以浏览,如图 10-16所示 。
文 件列表 框有 3个重 要的常 用属性,Path,
Pattern,FileName。
1,Path属性用来指定当前路径,缺省值为系统的当前路径。
2,Pattern属性该属性用来指定在文件列表框显示的文件类型,
它的缺省值为,*.*” 。
3,FileName属性用来在程序运行时设置或返回所选中的文件名 。
【 例 10.11】 设计一个如图 10-17所示的,打开可执行文件,的管理界面 。
其它控件属性均使用默认值 。
程序如下:
Dim fullName As String
Private Sub Combo1_Click()
File1.Pattern = Combo1.Text
End Sub
Private Sub Command1_Click()
File1_DblClick
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Dir1_Change()
Text1.Text = Dir1.Path
File1.Path = Dir1.Path
End Sub
Private Sub Drive1_Change()
Text1.Text = Drive1.Drive
Dir1.Path = Drive1.Drive
End Sub
Private Sub File1_Click()
If Right$(Dir1.Path,1) = "\"
Then
sep = ""
Else
sep = "\"
End If
fullName = Dir1.Path + sep + File1.FileName
Text1.Text = fullName
End Sub
Private Sub File1_DblClick()
fid = Shell(fullName,1)
End Sub
Private Sub Form_Load()
Combo1.AddItem "*.exe"
Combo1.AddItem "*.com"
Combo1.AddItem "*.bat"
End Sub
10.5 工具栏工具栏为用户提供了对于应用程序中最常用的菜单命令的快速访问,进一步增强了应用程序的菜单界面,现在已成为 Windows应用程序的标准功能 。