1、了解自定义对话框的使用。 掌握通用对话框的建立和常用属性、常用方法; 掌握利用菜单设计器来建立、修改菜单项的方法;,本章要求:,第7章 应用程序界面设计,本章重点:,本章难点:,通用对话框的使用、菜单的建立与使用,通用对话框的使用、动态菜单,7.1 菜单的设计,7.2 对话框的设计,7.3 工具栏的设计,7.4 多重窗体的设计,7.1 菜单的设计,菜单可分为两种类型:下拉式菜单和 弹出式菜单,7.1.1 下拉式菜单,菜单控件(对象)只有一个事件单击事件(Click( )),在一个应用系统中,主菜单一般使用下拉式菜单,每一个菜单包含若干个选择项,也叫做子菜单。每个菜单项相当于一个命令按钮,通常要
2、对其中Click事件进行编程,单击菜单项即触发该菜单项的Click事件过程。,启动菜单编辑器: 有三种方法1 单击工具栏菜单图标2 工具/菜单编辑器 (CTRL+E)3 窗体上快捷菜单菜单编辑器菜单编辑器操作界面如右所示。,1、菜单编辑,7.1 菜单的设计,菜单编辑器的编辑说明,1. 标题(Caption): 2. 名称(Name): 3. 快捷键(Shortcut): 4. 下一个(Next): 5. 和按钮 6. 插入(Insert)按钮: 7. 删除(Delete)按钮: 8 和按钮: 10. 复选(Checked)检查框: 10. 有效(Enabled)检查框:,根据设计要求,依次输入
3、或选择所面项目,即可完成。例:,菜单的主要属性1. 标题(Caption):在窗口上显示,例如:输入&File,显示为: File,热键:Alt+F 2. 名称(Name): 菜单项的名称,分界符也应有名称。3. 快捷键(Shortcut):下拉列表框4 下一个(Next): 设置下一个菜单项。5. 和按钮:“” 下一级菜单项;“”上一级菜单项。6. 插入(Insert)按钮:插入菜单项7. 删除(Delete)按钮:删除菜单项8. 和按钮: 改变菜单项位置。10. 复选(Checked)检查框:菜单项为选定项。11. 有效(Enabled)检查框:True:菜单项可选;False:不可选。,
4、菜单编辑器的使用技巧,2、创建菜单(演示),图7.2 【例7.1】程序运行界面,3、菜单的事件响应程序,弹出式菜单是独立于菜单栏显示在窗体或指定控件上的浮动菜单,菜单的显示位置与鼠标当前位置有关。 实现步骤如下:1. 在菜单编辑器中建立该菜单。2.设置其顶层菜单项(主菜单项)的Visible属性为False(不可见)。3.在窗体或控件的MouseUp或MouseDown事件中调用PopupMenu方法显示该菜单。PopupMenu的使用方法为:PopupMenu ,flags,x,y,Boldcommand,7.1 菜单的设计,7.1.2 弹出式菜单,其中: 关键字“PopupMenu”可以前
5、置窗体名称,但不可前置其他控件名称。 是指通过菜单编辑器设计的、至少有一个子菜单项的菜单名称(Name)。 Flags参数为常数,用来定义显示位置与行为。,7.1 菜单的设计,举 例,1设计下拉菜单 2设计子菜单或改变子菜单级别 3为菜单项分组 菜单名用减号“-” 4为菜单项指定访问键和快捷键与命令按钮设置访问键相同。 5为菜单项加上复选标记 6禁止使用菜单项在程序代码中可以通过程序代码:菜单名.Enabled=False 7菜单项的增减,菜单设计的几项操作:,菜单编辑器的使用技巧,7.2 对话框的设计,对话框是应用程序与用户交互的主要途径。,7.2.1 CommonDialog 控件,Com
6、monDialog控件是常用的一个控件,它可以提供打开、另存为、颜色、字体、打印、帮助等几种类型的标准对话框。该控件属于ActiveX 控件而不是Visual Basic的标准控件,用户使用之前,需要先将其引入控件箱。,具体操作如下: 右击工具箱 部件在【部件】对话框中选中“Microsoft Common Dialog Control 6.0”,通用对话框图标,通用对话框可以提供6种形式的对话框,通过设置Action属性值或调用Show方法来建立不同类型的对话框。如下表:,打开通用对话框的方法与Action属性设置,Private Sub Command1_Click( )CommonDia
7、log1.Action = 1CommonDialog1.ShowOpen End Sub,1、“打开”对话框,2、“另存为”对话框,Private Sub Command1_Click( )CommonDialog1.Action = 2CommonDialog1.ShowSave End Sub,3、“颜色”对话框,Private Sub Command1_Click( )CommonDialog1.Action = 3CommonDialog1.ShowColor End Sub,例:选择颜色对话框中的颜色改变文本框中字体的颜色。,With CommonDialog1.ShowColor
8、 Text1.ForeColor = .Color End With,4、“字体”对话框,Private Sub Command1_Click( )CommonDialog1.Action = 4CommonDialog1.ShowFont End Sub,例:要设置文本框中字体的样式,可以通过显示【字体】对话框后,将【字体】对话框的返回值传递给文本框控件的字体属性来实现。,With CommonDialog1.Flags = cdlCFBoth.Action = 4Text1.Font.Name = .FontNameText1.Font.Bold = .FontBoldText1.Font
9、.Italic = .FontItalicText1.Font.Size = .FontSizeText1.Font.Strikethrough = .FontStrikethruText1.Font.Underline = .FontUnderlineText1.ForeColor = .Color End With,5、“打印”对话框,Private Sub Command1_Click( )CommonDialog1.Action = 5CommonDialog1.ShowPrinter End Sub,6、“帮助”对话框,Private Sub Command1_Click( )Com
10、monDialog1.Action = 6CommonDialog1.ShowHelp End Sub,With CommonDialog1.HelpFile = “VB6.hlp“.HelpCommand = cdlHelpContents.ShowHelp End With,7.3 工具栏的设计,在VB程序设计中,为窗体添加工具栏应使用ToolBar控件和ImageList控件。ToolBar控件和ImageList控件是ActiveX 控件,在使用时必须先添加到工具箱中。 创建工具栏的步骤如下: 添加ToolBar控件和ImageList控件。工程|部件 Microsoft Window
11、s Common Control 6.0 创建ImageList控件作为使用图形的集合。创建ToolBar控件,且将ToolBar控件与ImageList控件相关 联,创建Button对象。在ButtonClick事件中添加代码。,7.3.1 ImageList控件,ImageList控件不单独使用,专门为其它控件提供图像库 。,索引(Index) 关键字(Key) 在ToolBar中引用 图象文件的扩展名为: .ico、.bmp、.gif、.jpg等,7.3.1 ToolBar 控件,1、工具栏连接图像,2、在ToolBar控件中添加按钮,索引(Index)、关键字(Key)每个按钮的编号、
12、标识, ButtonClick事件中引用;,图象(Image) ImageList对象中的图象,值可以是Key或Index,样式(Style),共5种,3、 响应ToolBar控件事件ToolBar控件常用的事件有两个:ButtonClick和ButtonMenuClick。前者对按钮样式为0-2,后者对样式为5的菜单按钮。(1)用索引Index确定按钮 (2)用关键字Key确定按钮,Private Sub Toolbar1_ButtonClick(Byval Button As ComctlLib.Button)Select Case Button.IndexCase 1FileNewPro
13、cCase 2FileOpenProcEnd Select End Sub注意:第1个按钮的Index值为1。用Index还是用Key比较,Key 可读性好,可维护性好。,Select Case Button.KeyCase “TNew“FileNewProcCase “TOpen“FileOpenProc. End Select End Sub,7.4 多重窗体的设计,1 创建MDI窗体,一个应用程序只能有一个MDI窗体,但可以有多个MDI子窗体。 在工具栏上单击图标 ,在下拉菜单中选择“添加MDI窗体”。,2 创建MDI子窗体,首先创建一个普通窗体,然后将其MDIChild属性设置为True, 此时该窗体便成为一个MDI子窗体。,3 加载 MDI 子窗体,程序运行后,系统会自动加载并显示MDI窗体,但其子窗体不会自动加载。因此,需要在父窗体的Load事件中加入显示子窗体的代码。,Private Sub MDIForm1_Load ( )Form1.ShowForm2.Show End Sub,4 关闭 MDI 窗体,UnloadMDI 窗体名 或 Unload Me,