第十章 菜单栏
10.1 菜单系统结构及其应用
10.1.1 菜单系统结构及其概念
10.1.2 菜单设计器
10.1.3,菜单”、“显示”菜单
10.1.4 菜单系统规划原则、步骤
10.2 定制菜单系统
10.2.1 快捷菜单
10.2.2 单文档菜单
10.2.3 子菜单
10.2.4 以编程方式添加菜单
10.2.5 分组各菜单
10.3 菜单创建实例
10.1 菜单系统结构及组成
10.1.1 菜单系统结构及其概念用户在使用软件查找信息之前,首先看到的便是菜单,Visual
FoxPro的菜单系统实际上是一个树型结构。菜单栏是指菜单最上面的一层,即几乎所有应用程序都有并始终都可看到的菜单名列表栏;菜单栏中的每个菜单名代表了一个主菜单选项,主菜单项的名称即菜单标题。例如:“文件”是一个主菜单项的标题,点击主菜单项将它展开,显示它所具有的子菜单选项。每一个主菜单项可以直接对应于一条命令或过程;一般每个主菜单对应有一个下拉菜单,下拉菜单中包含了一组菜单项;如果是对应于一个子菜单,则子菜单里又可包含一组相关的菜单项,它们又分别对应于一个子菜单或直接对应于一条命令,从而形成一个不断分支的树型结构。
10.1.2 菜单设计器如果菜单设计得很好,那么用户只要根据菜单栏和与之配套的工具栏的组织形式和内容,就可以很好地理解应用程序要点及其所能提供的主要功能,为恰当地设计菜单栏和工具栏,实现应用程序的主要功能实现 。 提供了,菜单设计器,,用来创建菜单 。
打开菜单设计器的方法有以下几种:
l从常用工具栏上单击,新建,按钮,在,新建,,文件类型,
列表中选择,菜单,单选项,然后单击,新建文件,按钮,出现
,新建菜单,窗口,用鼠标单击其中的,菜单,按钮,出现,菜单设计器,。
l从,文件,菜单中,选择,新建,菜单项,出现,新建,窗口,以后操作同上 。
l通过项目管理器,即在项目管理器中选择,菜单,,然后单击,新建,按钮 。
l使用命令,其格式为,MODIFY MEMU <文件名 >,其中 的 <
文件名 >指菜单文件,扩展名是,MNX,允许缺省 。
10.1.3,菜单”、“显示”菜单使用菜单设计器时,系统菜单将添加一个,菜单,菜单项 。
l快速菜单:用于快速设计菜单 。 打开,菜单设计器,,尚未输入任何其它内容时该选项是活动的 。 选择它,可将系统菜单的内容提取到当前菜单设计器中显示,亦可对该菜单进行修改调整,
形成一个新的菜单系统 。
l插入菜单项:在当前菜单项下插入一个菜单项 。
l插入栏:显示插入系统菜单条对话框,它允许向菜单设计器窗口中添加菜单项 。
l删除菜单项:删除当前菜单项 。
l生成:激活生成对话框,根据当前设计的,MNX菜单文件,生成对应的,MPR菜单程序代码文件 。
l预览:菜单预览,演示设计的菜单 。
在使用菜单设计器时,,显示,菜单 ( 如图 10-5所示 ) 中将添加如下菜单选项:
l“常规选项,对话框:将激活一个常规选项对话框,它允许为整个菜单系统指定代码 。 该对话框提供如下选项:
,过程编辑,框:在这里输入菜单过程代码 。 如果代码过多超出编辑域,编辑域右侧的滚动条将被激活 。
,编辑,按钮:按下,编辑,按钮将打开一个编辑窗口来输入菜单过程的代码 。 要进入编辑窗口编写程序,按,确定,按钮关掉对话框就可以 。
位置区:包含如下 4个按钮:
替换:将现有的菜单系统替换成新的菜单系统 。
追加:将定义的菜单附加在现有菜单的后面 。
在 … 之后:将定义的菜单插入到指定菜单的后面 。 选中这一选项将出现一弹出列表,其中列出了当前菜单系统的菜单名,可从中选择一个菜单名,已定义的菜单将出现在该菜单的后面 。
在 … 之前:将用户定义的菜单插入到指定菜单前 。 选中这一选项将出现一弹出列表,列出了当前菜单系统的菜单名 。 可从中选择一个菜单名,用户定义菜单出现在该菜单的前 。
菜单代码:包括两个复选框:
设置:选中这一项将打开一编辑窗口,从中可为菜单系统加入一段初始化代码 。 要进入打开的设置代码编辑窗口,选定该复选框,单击,确定,按钮即可 。
清理:选中这一项将打开一个编辑窗口,从中可为菜单系统加入一段结束代码 。 要进入打开的结束代码编辑窗口,选定该复选框,单击,确定,按钮即可 。
顶层表单:如果选定该复选框,将允许该菜单在顶层表单
( SDI) 中使用;如果未选定,只允许在 Visual FoxPro页框中使用该菜单 。
l菜,单选项,对话框当选择,显示,菜单中的,菜单选项,时将显示,菜单选项,
对话框,为菜单栏 ( 即顶层菜单 ) 或各子菜单项输入代码,它包括以下几个选项,名称:显示菜单的名称 。
过程:其编辑框用于输入或显示菜单的过程代码 。
编辑按钮:用鼠标单击此按钮将打开一个文本编辑窗口,其功能与过程框基本相同 。
10.1.4 菜单系统规划原则、步骤菜单系统是菜单栏,菜单标题,下拉菜单,菜单项和子菜单的组合体 。 规划和设计菜单系统主要是确定需要哪些菜单,出现在界面的何处以及哪些菜单要有子菜单等 。 创建菜单系统的大量工作是在,菜单设计器,中完成的,在那里可创建实际的菜单标题,子菜单和菜单选项等菜单内容 。 在创建菜单之前,我们需要先进行菜单系统的规划和设计 。
创建菜单系统需以下步骤:
l规划与设计系统:确定需要哪些菜单,出现在界面的何处以及哪几个菜单要有子菜单等 。
l创建菜单和子菜单:使用菜单设计器可以定义菜单标题,菜单项和子菜单 。
l按实际要求为菜单系统指定任务:指定菜单所要执行的任务,
如显示表单或对话框等 。
生成菜单程序:运行生成的程序,以测试菜单系统 。
10.2 定制菜单系统要新建一个菜单,可以通过定制已有的 Visual FoxPro 菜单系统或者开发自己的菜单系统来创建 。 如果要从已有的 Visual
FoxPro 菜单系统开始创建菜单,则可以使用,快速菜单,功能 。
具体操作步骤如下:
( 1) 选择,项目管理器,中的,其他,选项卡,选定,菜单,
项,然后用鼠标单击,新建,按钮,在随后出现的,新建菜单,
窗口中用鼠标单击,菜单,按钮,随后将会出现,菜单设计器,
窗口,同时在系统菜单中将会出现,菜单,选项 。
( 2) 在系统菜单的,菜单,选项中,选择,快速菜单,命令,
在,菜单设计器,中将会包含关于 Visual FoxPro 主菜单的信息 。
在,菜单设计器,中可通过添加或更改菜单项定制菜单系统,
同时,如果用鼠标拖动最前面的移动钮,还可以改变菜单栏上各菜单的位置 。 此外,如果需要创建,帮助,菜单,最好将它安排在菜单栏的最后,这样用户能够很快找到它 。
10.2.1 快捷菜单在控件或对象上单击右键时,将会显示快捷菜单,以便快速展示当前对象可用的所有功能 。 Visual FoxPro具有创建快捷菜单的功能,并可将这些菜单附加在控件中 。 例如,可创建包含,剪切,,,复制,和,粘贴,命令的快捷菜单,当用户在表格控件所包含的数据上单击右键时,将出现此快捷菜单 。
创建快捷菜单的具体操作如下:
( 1) 选择,项目管理器,中的,其他,选项卡,选定,菜单,
选项,并单击,新建,按钮 。
( 2) 在随后出现的,新建菜单,窗口中用鼠标单击,快捷菜单,
按钮,将会出现,快捷菜单设计器,。
( 3) 进入,快捷菜单设计器,后,添加菜单项的过程与创建菜单完全相同 。 即在,菜单名称,栏中,选择相应的菜单标题或菜单项;单击,选项,栏中的按钮,出现,提示选项,对话框,在
,键标签,框中,按下一组合键,可创建快捷键 。 快捷键一般用
Ctrl 或 Alt 键与另一个键相组合 。
10.2.2 单文档菜单单文档菜单是出现在单文档界面 ( SDI) 窗口中的菜单 。 如果要创建 SDI 菜单,必须在设计菜单时指出该菜单用于 SDI 表单 。 除此之外,创建 SDI 菜单的过程与创建普通菜单完全相同 。 具体操作为:打开,菜单设计器,,从,显示,菜单中选择,常规选项,,
并选择,顶层表单,。
菜单创建好后,可以在菜单上设置菜单项 。 每个菜单项都表示了一个我们希望用户执行的 Visual FoxPro命令或过程,菜单项也可以包含子菜单,用以提供其他菜单项 。
10.2.3 分组各菜单项为增强可读性,可使用分隔线将内容相关的菜单项分隔成组 。
在,菜单名称,栏中,键入,\-”,便可以创建一条分隔线 。 拖动
,\-”提示符左侧的按钮,可以将分隔线移动到正确的位置 。
10.2.4 子菜单对于每个菜单项,都可以创建包含其他菜单项的子菜单 。 如果需要在菜单项中添加子菜单,可进行如下操作:
在菜单设计器的,菜单名称,栏中,选择要添加子菜单的菜单项;
在,结果,框中,选择,子菜单,,此时,创建,按钮会出现在列表的右侧 。 如果已经有了子菜单,则此处出现的是,编辑,按钮,用鼠标单击,创建,或,编辑,按钮 。 然后在,菜单名称,
栏中,键入新建的各子菜单项的名称 。 在子菜单建立完成后,如果还需要建立其他的菜单项,在,菜单级,的下拉列表中选择
,菜单栏,选项,则可以继续建立其他的菜单项 。
10.2.5 以编程方式添加菜单我们既可以使用,菜单设计器,创建菜单和菜单项,也可以使用 Visual FoxPro的命令来创建 。 例如,创建菜单可使用 DEFINE
PAD 命令,创建子菜单可使用 DEFINE POPUP 命令,而在子菜单上创建菜单项则可以使用一组 DEFINE BAR 命令 。