前页后页首页VisualFoxPro6.0程序设计.课件-1-第8章菜单设计8.1菜单的基本概念8.2创建下拉式菜单8.3创建快捷菜单提示:单击各个标题前的动画符号“”,链接到相应的章节。前页后页首页VisualFoxPro6.0程序设计.课件-2-8.1菜单的基本概念8.1.1菜单的组成8.1.2菜单的设计原则、步骤8.1.3菜单设计器前页后页首页VisualFoxPro6.0程序设计.课件-3-8.1菜单的基本概念菜单是应用程序的一个重要组成部分,通过菜单,可以将一个应用系统中的多个独立的程序模块组织起来。本章将重点介绍如何创建下拉菜单和快捷菜单、生成菜单程序、运行菜单系统。8.1.1菜单的组成1.菜单系统菜单系统由菜单栏、菜单标题、菜单、菜单项等组成,它通常处于程序的主窗口之中,是构成应用程序主框架的重要部分。下面就以图8-1所示的记事本程序的菜单系统为例,介绍菜单的组成部分。前页后页首页VisualFoxPro6.0程序设计.课件-4-前页后页首页VisualFoxPro6.0程序设计.课件-5-菜单栏中一般包含一个或多个菜单标题。菜单标题简称为菜单,单击一个菜单标题,其下包含的菜单项的列表将下拉弹出。菜单项包括:菜单命令(如“新建”和“退出”)、分隔条和子菜单标题。菜单项列表一般自动隐藏,不占界面空间,只有在用户做出某种选择时,才会弹出。有些菜单项目直接执行动作(如“文件”菜单中的“退出”菜单项,将关闭应用程序);有些菜单项显示一个对话框,即要求用户提供应用程序执行动作所需信息的窗口,对于这类窗口,通常在这些菜单项后加上省略符(…),例如,当从“文件”菜单中选择“另存为…”时,会打开“文件另存为”对话框。在“文件”菜单中每个菜单项的右边都有一个带“_”(下划线)的字母,如“退出”菜单项右边的X,该下划线表示X为“文件”下拉菜单中“退出”菜单项的“访问键(热键)”,当单击“文件”菜单,下拉菜单打开后,用户可以直接在键盘上按【X】键来执行该菜单项的功能,其效果等同于用鼠标单击“退出”菜单项。“访问键”只有在下拉菜单打开后才有效。快捷键的使用不需要下拉菜单打开,为的是用户可以在不打开菜单的情况下,直接使用菜单项的功能。只有用户最常用的那些菜单项才定义了快捷键。例如,“保存”菜单项的快捷键为【Ctrl+S】。前页后页首页VisualFoxPro6.0程序设计.课件-6-2.菜单的分类下拉式菜单和快捷菜单(1)下拉式菜单由菜单栏和其下拉弹出的菜单列表组成,简称下拉菜单。如图8-1所示的记事本窗口顶部的菜单,就是下拉式的菜单。(2)快捷菜单一般从属于某个界面对象,它提供与该对象相关的一些操作。快捷菜单一般是在对象上单击鼠标右键弹出的,如图8-2所示。因此,快捷菜单又称为弹出式菜单。快捷菜单对象图8-2快捷菜单前页后页首页VisualFoxPro6.0程序设计.课件-7-8.1.2菜单的设计原则、步骤设计菜单时一般遵循以下原则:(1)根据系统要完成或要达到的任务来组织菜单系统。给每个菜单命名一个有意义的菜单标题。(2)为每个菜单项指定一个有意义、简洁、准确的名字。(3)按照估计的菜单项使用频率、逻辑顺序或字母顺序组织菜单项。(4)按照功能相近和顺序原则,将菜单项进行逻辑分组。在菜单项的逻辑组之间放置分隔线。并在需要时将大组分成更小单位的组。(5)菜单中的项数尽可能在一个屏幕中展示出来。如菜单项的显示超出了程序界面,则应为其中的一些菜单项创建子菜单。(6)菜单中的每个菜单和菜单项设置访问键和快捷键。菜单设计时的一般步骤如下:(1)做好菜单系统的规划。(2)使用菜单设计器来创建菜单,生成菜单程序。(3)调试和运行菜单。前页后页首页VisualFoxPro6.0程序设计.课件-8-8.1.3菜单设计器菜单设计器用于设计菜单系统。1.打开菜单设计器单击“文件”|“新建”命令,在出现的“新建”对话框中选中“菜单”项,然后单击“新建文件”按钮,出现“新建菜单”对话框,如图8-3所示。图8-3“新建菜单”对话框前页后页首页VisualFoxPro6.0程序设计.课件-9-在“新建菜单”对话框中单击“菜单”按钮,打开菜单设计器,如图8-4所示。图8-4菜单设计器前页后页首页VisualFoxPro6.0程序设计.课件-10-2.设计菜单打开菜单设计器后,系统菜单中将自动增加一个“菜单”菜单,用户就可以利用该菜单和菜单设计器创建或修改菜单。菜单设计器各部分功能介绍如下:(1)菜单名称“菜单名称”列用于指定显示在菜单系统中的菜单项的菜单标题。用鼠标拖动“菜单名称”列左边的按钮,可以调整各行的前后顺序。在输入菜单标题的同时也可以为其指定访问键,指定访问键的方法是在要定义的字符前加上“\”。用户也可以在菜单名称栏中输入“\-”,以创建一条分隔条。前页后页首页VisualFoxPro6.0程序设计.课件-11-(2)结果•“结果”列用于指定在选择菜单项时发生动作类型,包括“命令”、“填充名称”、“子菜单”和“过程”这几个选项,其中各选项的作用如下:•命令:该选项用于为菜单项定义一条命令。选择此项后,右侧会出现一个文本框,只要将命令输入到该文本框中即可。•填充名称:该选项用于填充一个菜单项名称。选择此项后,右侧会出现一个文本框,用户可以自己定义菜单填充项名称,也可以使用VFP系统菜单填充项。•子菜单:该选项用于定义当前菜单项的子菜单。选择此项后,右侧会出现一个“创建”按钮,单击该“创建”按钮就可以为当前菜单项创建子菜单。菜单设计器右侧的菜单级组合框,用于从下级菜单项切换到上级菜单,它含有当前可切换到的所有菜单项。组合框中的“菜单栏”选项表示第一级菜单。•过程:该选项用于为菜单定义一个过程。选择此项后,右侧会出现一个“创建”按钮,单击该“创建”按钮就会出现如图8-5所示的过程编辑窗口。过程的代码就是在过程编辑窗口中输入的。前页后页首页VisualFoxPro6.0程序设计.课件-12-图8-5过程编辑窗口前页后页首页VisualFoxPro6.0程序设计.课件-13-(3)选项每个菜单行的“选项”列对应的是一个无标题按钮,单击该按钮,可以打开如图8-6所示的“提示选项”对话框。图8-6“提示选项”对话框前页后页首页VisualFoxPro6.0程序设计.课件-14-在该“提示选项”对话框中可进行如下操作:•为菜单项设置快捷键:快捷键是指菜单项右侧显示的组合键,在菜单未打开时,使用快捷键即可直接执行菜单项。在“键标签”文本框中单击,然后按下要定义的快捷键,此时在“键标签”和“键说明”文本框中,都会显示所按下的快捷键。•设定浅色菜单项:“跳过”文本框用于设置菜单项的跳过条件,用户可在其中输入一个表达式来表示条件,在程序运行时,当表达式的值为.T.时该菜单以浅色显示,表示不可用。•显示状态栏信息:“信息”文本框用于设置菜单项的说明信息(为字符串),该说明信息将出现在状态栏中。前页后页首页VisualFoxPro6.0程序设计.课件-15-(4)菜单级:该下拉列表框用于选择要处理的菜单栏或子菜单。(5)“菜单项”按钮组:该组里的命令按钮实现对当前菜单行的各种操作,具体如下:•“插入”按钮:单击该按钮可以在当前菜单行的前面插入新的菜单行。•“插入栏”按钮:单击该按钮可在当前菜单行的前面插入新的菜单行。但是它能提供与系统菜单一样的菜单项作为用户菜单的命令。注意:仅当建立或编辑子菜单时该按钮才可使用。•“删除”按钮:单击该按钮可删除当前菜单行。(6)“预览”按钮:单击该按钮可预览正在创建的菜单,但无法执行菜单的相应的功能。前页后页首页VisualFoxPro6.0程序设计.课件-16-(7)“常规选项”对话框当菜单设计器成为活动窗口时,VFP系统菜单的“显示”菜单将会增加“常规选项”菜单项,若选择该菜单项,就会出现如图8-7所示的“常规选项”对话框。图8-7“常规选项”对话框前页后页首页VisualFoxPro6.0程序设计.课件-17-对话框各部分功能介绍如下:•“过程”列表框:若在主菜单中有菜单没有设置过任何命令或过程,可在该编辑框中为这些菜单输入公共的过程,当选中这些菜单时就会执行该过程。•“位置”选项区:表示用户定义的菜单和VFP系统菜单之间的位置关系。该选项区有4个单选按钮,功能如下:“替换”单选按钮:表示要以用户定义的菜单替换VFP系统菜单。“追加”单选按钮:表示将用户定义的菜单添加到VFP系统菜单之后。“在…之前”单选按钮:表示将用户定义的菜单插入到某菜单项前面,选定该项后,右侧会出现一个用来指定菜单项的组合框。“在…之后”单选按钮:表示将用户定义的菜单插入到某菜单项后面。•“菜单代码”选项区:该选项区包括“设置”和“清理”两个复选框,无论选择哪个都会出现一个编辑框,供用户输入代码。如果选中“设置”复选框,则代码在显示菜单之前执行,主要是菜单初始化代码;选中“清理”复选框,该代码在显示菜单之后执行,其作用是对菜单执行完毕后做一些清理等善后工作。•“顶层表单”复选框:用于创建单文档界面(SDI)菜单,该菜单可出现在SDI表单中。注意:加入该菜单的表单类型必须为顶层表单。前页后页首页VisualFoxPro6.0程序设计.课件-18-(8)“菜单选项”对话框当菜单设计器成为活动窗口时,VisualFoxPro6.0系统菜单的“显示”菜单将会增加“菜单选项”菜单项,若选择该菜单项,就会出现如图8-8所示的“菜单选项”对话框。图8-8“菜单选项”对话框前页后页首页VisualFoxPro6.0程序设计.课件-19-3.保存菜单菜单保存后,菜单的内容会保存到扩展名为.MNX菜单文件中以及扩展名为.MNT的备注文件中。可以选择以下3种方法之一来保存菜单。单击菜单设计器标题栏右端的“关闭”按钮,弹出询问是否保存的对话框,单击“是”按钮,即可保存菜单,并关闭菜单设计器。按【Ctrl+W】组合键,即可保存菜单并关闭菜单设计器。单击“文件”|“保存”命令,也可保存菜单,但菜单设计器不关闭。前页后页首页VisualFoxPro6.0程序设计.课件-20-4.生成菜单程序单击“菜单”}“生成”命令,将出现如图8-9所示的“生成菜单”对话框。确定菜单程序路径和文件名之后,单击“生成”按钮即可。菜单程序的扩展名为.mpr。图8-9“生成菜单”对话框前页后页首页VisualFoxPro6.0程序设计.课件-21-5.运行菜单可以通过如下两种方法来运行菜单:在命令窗口中使用DO命令来运行菜单程序文件,其格式如下:DO菜单程序文件名.MPR单击“程序”|“运行”命令,在弹出的“运行”对话框中选择希望运行的菜单程序文件,单击“确定”按钮。前页后页首页VisualFoxPro6.0程序设计.课件-22-8.2创建下拉式菜单下拉式菜单位于窗口顶部的菜单栏里,使用比较方便。下拉式菜单是用菜单设计器创建的,创建下拉式菜单的步骤如下:(1)先用菜单设计器定义菜单标题、菜单项和子菜单。(2)按实际要求为菜单项指定所要执行的任务。例如,用菜单项执行显示表单或对话框等任务。(3)生成菜单程序。(4)运行生成的程序,以测试菜单系统。前页后页首页VisualFoxPro6.0程序设计.课件-23-【例8-1】设计一个下拉式菜单,使菜单栏包含“登录”、“学生信息”和“关闭”3个菜单标题。其中,“学生信息”菜单下有“浏览学生信息”、“增加学生记录”、“修改学生记录”和“删除学生记录”4个菜单项。操作步骤如下:1.建立主菜单打开菜单设计器,添加“登录”、“学生信息”和“关闭”3个菜单项,如图所示。由于这3个菜单项是位于菜单栏中的,所以它们是主菜单的菜单标题。前页后页首页VisualFoxPro6.0程序设计.课件-24-2.为“学生信息”菜单建立子菜单选中“学生信息”行,单击“创建”按钮,菜单设计器切换到子菜单页,建立“浏览学生信息”、“增加学生记录”、“修改学生记录”和“删除学生记录”4个子菜单项,如图所示。前页后页首页V