已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章 菜单与对话框,第9章 菜单与对话框,9.1 使用菜单 菜单是Windows应用程序中十分关键的要素之一,它以分组的形式组织多个命令或操作,为用户灵活操作应用程序提供了便捷的手段。 在实际的应用中,菜单可分为两种基本类型:下拉式菜单和弹出式菜单。下拉式菜单一般通过单击菜单栏中菜单标题(如“文件”、“编辑”、“视图”等)的方式打开,弹出式菜单则通过用鼠标右键单击某一区域的方式打开。,9.1.1 下拉式菜单 在下拉式菜单系统中,一般有一个主菜单,称为菜单栏。其中包括一个或多个选择项,称为菜单标题。当单击一个菜单标题时,包含菜单项的列表(菜单)即被打开。菜单由若干个命令、分隔条、子菜单标题(其右边含有三角的菜单项)等菜单项组成。当选择子菜单标题时又会“下拉”出下一级菜单项列表,称为子菜单。VB的菜单系统最多可达6层。,1. 菜单控件 在VB中,菜单也是一个图形对象,即控件。与其它控件一样,它具有定义其外观与行为的属性。在设计或运行时可以设置Caption属性、Enabled和Visible属性、Checked属性以及其它属性。菜单控件只包含一个事件,即Click事件,当用鼠标或键盘选中该菜单控件时,将调用该事件。与一般控件不同的是,菜单控件不在VB的工具箱中,需要在VB的“菜单编辑器”中进行菜单的设计。,2. 菜单编辑器 用菜单编辑器可以创建新的菜单和菜单项、在已有的菜单上增加新命令、编辑已有的菜单命令、以及修改和删除已有的菜单和菜单项。 在VB系统的“工具”菜单中选择“菜单编辑器”,或在“工具栏”上单击“菜单编辑器”按钮都可以打开菜单编辑器,如图9-2所示。 图9-2 菜单编辑器,菜单编辑器分为三个部分: 1) 菜单控件属性区。用于设置菜单项的各个属性,表9-1列出其中的主要属性: 表9-1 菜单控件的主要属性 其他属性可参见VB的联机帮助。,2) 编辑区。编辑区共有7个按钮,用来对输入的菜单项进行简单的编辑。 3) 菜单控件列表框。菜单控件列表框位于菜单编辑器的下部,输入的菜单项在这里显示出来,并通过内缩符号表明菜单项的层次,如图9-3所示。 图9-3 菜单控件列表框与对应的菜单项,3. 下拉式菜单的设计 下面通过一个例子来说明菜单程序设计的基本方法和步骤,这个方法具有通用性,无论多复杂的菜单都可以通过这个方法设计出来。 【例9-1】为例4-13中的电子标题板增加一个菜单,利用菜单来控制标题板的内容、字体、字体风格等,如图9-4所示。 图9-4 利用菜单控制标题板,只需在例4-13的基础上作如下修改: 打开菜单编辑器,按照表9-3设计菜单项: 表9-3 菜单项的设置, 编写菜单项代码。 编写“文本内容”项Txt的Click事件代码: Private Sub Txt_Click() temp = InputBox(“请输入标题板的新内容“, “输入“, Label1.Caption) If temp “ Then Label1.Caption = temp End If End Sub,编写“文本字体”中4个菜单选项的Click事件代码: Private Sub song_Click() Label1.FontName = “宋体“ End Sub Private Sub li_Click() Label1.FontName = “隶书“ End Sub Private Sub kai_Click() Label1.FontName = “楷体_GB2312“ End Sub Private Sub hei_Click() Label1.FontName = “黑体“ End Sub,编写“文本风格”中3个菜单选项的Click事件代码: Private Sub bld_Click() bld.Checked = Not bld.Checked Label1.FontBold = bld.Checked End Sub Private Sub Itl_Click() Itl.Checked = Not Itl.Checked Label1.FontItalic = Itl.Checked End Sub Private Sub Undrln_Click() Undrln.Checked = Not Undrln.Checked Label1.FontUnderline = Undrln.Checked End Sub,4. 菜单控件数组 既然VB将菜单项视为控件,因此就能运用控件数组的概念。菜单控件数组的作用主要有两个:1) 用于动态地增删菜单项。2) 简化编程,用一段代码处理多个菜单项。 【例9-2】在例9-1中使用菜单控件数组。 只需在例9-1的基础上作如下修改:,1) 打开菜单编辑器,按照表9-4修改菜单项: 表9-4 菜单项的修改,2) 修改菜单项代码。 删除原“文本字体”中4个菜单选项的Click事件代码,编写“文本字体”菜单中的菜单控件数组fname的Click事件代码: Private Sub fname_Click(Index As Integer) Select Case Index Case 1 Label1.Fontname = “宋体“ Case 2 Label1.Fontname = “隶书“ Case 3 Label1.Fontname = “楷体_GB2312“ Case 4 Label1.Fontname = “黑体“ End Select End Sub,删除原“文本风格”中3个菜单选项的Click事件代码,编写“文本风格”菜单中的菜单控件数组Styly的Click事件代码: Private Sub Styly_Click(Index As Integer) Styly(Index).Checked = Not Styly(Index).Checked Select Case Index Case 1 Label1.FontBold = Styly(Index).Checked Case 2 Label1.FontItalic = Styly(Index).Checked Case 3 Label1.FontUnderline = Styly(Index).Checked End Select End Sub,5. 菜单项的可用与不可用 VB设计的菜单可以根据程序的运行状态动态地进行调整。当菜单项所指示的操作不适合当前的环境时,可以暂时将其关闭,不让用户选择该菜单项,也可以干脆把它隐藏起来,就像根本没有这个菜单项一样,等到条件成熟时,再重新显示被隐藏的菜单项。 【例9-3】在例9-2中,当前文本的字体在菜单中被关闭菜单项呈灰色,可以选择未被选择的字体。如图9-5所示。,只需在例9-2的基础上修改“文本字体”菜单中的菜单控件数组fname的Click事件代码: Private Sub fname_Click(Index As Integer) Select Case Index Case 1 Label1.Fontname = “宋体“ Case 2 Label1.Fontname = “隶书“ Case 3 Label1.Fontname = “楷体_GB2312“ Case 4 Label1.Fontname = “黑体“ End Select For Each x In fname x.Enabled = IIf(x.Index = Index, False, True) Next End Sub 图9-5 菜单项的可用与不可用,隐藏一个菜单项的办法也是很简单的。在上例中,修改“文本字体”菜单中的菜单控件数组Fontname的Click事件代码如下,即可隐藏或重现菜单项(如图9-6)。 Private Sub fname_Click(Index As Integer) Select Case Index Case 1 Label1.FontName = “宋体“ Case 2 Label1.FontName = “隶书“ Case 3 Label1.FontName = “楷体_GB2312“ Case 4 Label1.FontName = “黑体“ End Select For Each x In fname x.Visible = IIf(x.Index = Index, False, True) Next End Sub,9.1.2 弹出式菜单 弹出式菜单能以灵活的方式为用户提供更加便利的操作,它可以根据用户单击鼠标右键时的位置,动态地调整菜单项的显示位置,同时也改变菜单项显示内容,因此弹出式菜单又称为“上下文菜单”或“快捷菜单”。 为了显示“弹出式菜单”,可以使用PopupMenu方法,语法为: 窗体名. PopupMenu菜单名, flags ,x , y , boldcommand Flags参数为一些常量数值的设置,包含位置常数及行为常数两个指定值,见表9-5和表9-6。,表9-5 位置常数 表9-6 行为常数,Boldcommand参数可以指定在显示的弹出式菜单中想以粗体字体出现的菜单项的名称。在弹出式菜单中只能有一个菜单项被加粗。 为创建一个不显示在菜单栏里的菜单,可在设计时使顶级菜单项目为不可见(保证在菜单编辑器里的“Visible”复选框没有被选上)。当VB显示一个弹出式菜单时,指定的顶级菜单的Visible属性会被忽略。 【例9-4】在例9-1中实现弹出式菜单(如图9-7)。 图9-7 自定义的弹出式菜单,只需增加标签和窗体的MouseDown事件代码: Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu Styl, 6 End If End Sub Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu txtfont, 6 End If End Sub 注意:在VB的文本框中,即使不编程也可以得到一个弹出式菜单。,9.2 公共对话框 “公共对话框”(Common Dialog)控件为用户提供了一组标准的系统对话框,可以使用它进行打开或保存文件、设置打印选项、选择各种颜色以及选择字体等的操作。另外还可以通过调用Windows帮助引擎来显示应用程序的帮助。 9.2.1 添加“公共对话框”控件 “公共对话框”控件属于VB专业版和企业版所特有的ActiveX控件,位于文件 C:WindowsSystemComdlg32.ocx 中,名称为“Microsoft Common Dialog Control 6.0”。,用鼠标右键单击控件工具箱,在弹出菜单中选择“部件”,打开部件对话框(如图9-9左)。在“部件”对话框中,选定所需的文件,按“确定”按钮即可将“公共对话框”控件添加到控件工具箱中(图9-9右)。 图9-9 添加“公共对话框”控件,9.2.2 使用“公共对话框” 在应用程序中使用“公共对话框”控件,需要将它添加到窗体中。由于在程序运行时看不见“公共对话框”控件,因此可以将它放置在窗体的任何位置。 在程序运行时,“公共对话框”可以显示一个对话框或是执行帮助的引擎,所显示的对话框由控件的“方法”决定。共有6种方法来指定相应的对话框,见表9-7。 表9-7 通用对话框控件的方法列表,每种对话框都有自己特殊的属性,这些属性既可以在属性窗口中设置,也可以在代码中设置,还可以在“属性页”对话框中设置。 在属性窗口中选择“(自定义)”,再单击右侧的“”按钮,就会出现“属性页”对话框,如图9-10所示。 图9-10 “属性页”对话框,1. 使用“打开”对话框 打开文件是Windows应用程序(例如Office)中的常用操作。“打开”对话框可以用来指定文件所在的驱动器、文件夹以及文件名、文件扩展名,如图9-11所示。 图9-11 “打开”对话框 运行时选定文件并关闭对话框后,可用FileName属性得到文件所在的驱动器、文件夹以及文件名、文件扩展名。,使用“打开”对话框的步骤如下: 1) 首先在窗体中增加“公共对话框”控件。 2) 然后在“属性页”对话框中设置属性。 3) 最后使用CommonDialog控件的ShowOpen方法来显示“打开”对话框: 控件名.ShowOpen,2. 使用“另存为”对话框 “另存为”对话框可以用来指定文件所要保存的驱动器、文件夹以及文件名、文件扩展名,如图9-12所示。 使用“另存为”对话框的步骤同上,首先应在窗体中增加“公共对话框”控件,然后在“属性页”对话框中设置属性,其中属性页的设置同上。最后使用CommonDialog控件的ShowSave方法来显示“另存为”对话框: 控件名.ShowSave,3. 使用“颜色”对话框 “颜色”对话框用来在调色盘中选择颜色,或者创建自定义颜色,如图9-13所示。 运行时选定颜色并关闭对话框后,可用Color属性得到所选的颜色。使用“颜色”对话框的步骤如下: 1) 首先在窗体中增加“公共对话框”控件。 2) 然后在“属性页”对话框中设置属性。 3) 最后使用CommonDialog控件的ShowColor方法来显示“颜色”对话框: 控件名.ShowColor,4. 使用“字体”对话框 “字体”对话框设置并返回所用字体的名字、样式、大小、效果及颜色,如图9-14。 使用“字体”对话框的步骤如下: 1) 首先在窗体中增加“公共对话框”控件。 2) 然后在“属性页”对话框中设置属性。 注意:必须将Flags属性设为下列常数之一与其他选项之和: cdlCFScreenFonts或1(屏幕字体) cdkCFPrinterFonts或2(打印机字体) cdlCFBoth或3(=1+2 两种字体皆有) 例如:设为259(=256+3是cdlCFEffects常数与3之和,在对话框中将出现颜色、效果等选项)。,3) 最后使用CommnnDialog控件的ShowFont方法来显示“字体”对话框: 控件名.ShowFont,5. 使用“打印”对话框 “打印”对话框可以设置打印输出的方法,如打印范围、打印份数、打印质量等其他打印属性。此外,对话框还显示当前安装的打印机的信息,允许用户重新设置缺省打印机。如图9-15所示。 使用“打印”对话框的步骤如下: 1) 首先在窗体中增加“公共对话框”控件。 2) 然后在“属性页”对话框中设置属性,如图9-16所示。 3) 最后使用CommonDialog控件的ShowPrinter方法来显示“打印”对话框: 控件名.ShowPrinter,【例9-5】使用公共对话框控件的例子(图9-17)。 图9-17 使用“公共对话框”控件,编写命令按钮数组Command()的Click事件代码: Private Sub Command1_Click(Index As Integer) n = Index Select Case n Case 0 CommonDialog1.Filter = “所有文件(*.*)|*.*|文本文件(*.TXT)|*.txt“ CommonDialog1.FilterIndex = 1 CommonDia
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保洁员合同范例
- 入职员工合同范例
- 协商解除劳务合同范例
- 制作补充合同模板
- 个人借用公司合同范例
- 国内商铺租赁合同模板
- 劳动合同范例 提成
- 企业购销粮油合同范例
- 公司合同范例封面
- 地质勘察转让合同范例
- 2024年新人教版一年级上册数学课件 四 11~20的认识 第7课时 解决问题
- 人教版2024八年级上册物理期中测试卷(含答案)
- 2024年普通高等学校招生全国统一考试·新课标卷(物理)附试卷分析
- 2024-2025学年北京版小学四年级上学期期中数学试题与参考答案
- 六年级上册道德与法治认识居民身份证人教部编版
- 新人教PEP版(三起)三年级上册英语全册课件(2024年新版教材)
- 音乐治疗导论智慧树知到答案2024年湖南科技大学
- 汽车行业新能源汽车动力系统技术创新方案
- 2024至2030年中国双碳产业园(零碳园区)规划建设与投资战略分析报告
- 葛根培训课件
- 跨平台游戏互操作性和可移植性
评论
0/150
提交评论