讲师:徐红波E-mail:x_h_b@tom.comVisualFoxPro程序设计教程第7章菜单与工具栏菜单和工具栏在应用程序中是必不可少的。开发者通过菜单将应用程序的功能、内容有条理地组织起来展现给用户使用。开发者通过工具栏为用户提供快捷、简单、方便的使用工具。菜单和工具栏是应用程序与用户最直接交互的界面。VFP为开发者提供了自定义菜单和工具栏的功能,从而使开发者能根据需要设计符合实际应用的菜单和工具栏。7.1建立菜单在应用程序中一般采用两种菜单,一种为下拉式菜单,另一种为快捷菜单。无论创建哪种菜单,首先都要根据需要对应用程序的菜单进行规划与设计,然后才是创建。7.1.1规划菜单需要规划内容:1.按用户的要求规划菜单;2.确定需要哪些菜单,有多少个菜单及子菜单;3.菜单应放在界面的哪个位置;4.确定每个菜单的标题和完成的任务;5.将菜单上的菜单项限制在一个屏幕内;6.确定哪些菜单项需要设置热键和快捷键。7.1.2建立下拉式菜单下拉式菜单是应用程序的总体菜单。1、下拉式菜单的组成下拉式菜单是由条形菜单和弹出式菜单组成。VFP菜单就是一个下拉式菜单。在VFP主界面窗口中主菜单就是一个条形菜单,当在主菜单栏选中一菜单项时,在该菜单项下方出现的菜单就是弹出式菜单。VFP使用可视化设计工具—菜单设计器来创建菜单。2、建立下拉式菜单建立下拉式菜单的基础步骤包括:打开菜单设计器,在菜单设计器中进行菜单定义,保存菜单,生成菜单程序,执行菜单程序。(1)打开菜单设计器(2)菜单设计器窗口(3)显示菜单(4)正确退出菜单的常用命令1)恢复VFP主窗口命令格式:MODIFYWINDOWSCREEN功能:恢复VFP主窗口在它启动时的配置。2)恢复VFP系统菜单命令格式:SETSYSMENUTODEFAULT功能:恢复VFP系统菜单。3)激活命令窗口命令格式:ACTIVATEWINDOWCOMMAND功能:激活命令窗口。(5)生成菜单程序(6)运行菜单[例7.1]设计一个下拉式菜单。要求条形菜单中的菜单项有数据查询(C),数据维护(W),输出报表(B),退出(R)。数据查询的弹出式菜单有按学号查询,按姓名查询,它们的快捷键分别为Ctrl+H,Ctrl+X。数据维护的弹出式菜单有维护学生表,维护学生成绩表,快捷键分别为Ctrl+E,Ctrl+F。输出报表无弹出式菜单。(7)将菜单放置到顶层表单中需要作如下几步:1)在定义菜单时将常规选项对话框中顶层表单复选框选中。2)创建一个顶层菜单,即将表单的ShowWindow属性设为23)在表单的Init事件中加入如下运行菜单的命令。格式:DO菜单名.MPRWITHTHIS,.T.例7.2将例1中的菜单放入顶层表单中7.1.3建立快捷菜单快捷菜单是由一个或一组上下级的弹出式菜单组成。它主要是对某一个界面对象选中后单击鼠标右键而出现的,它是针对用户对某一具体对象操作时快速出现的菜单,在这一方面与下拉式菜单不同。由于快捷菜单简单方便,用户非常容易掌握它的操作和使用,因此应用极为普遍。1、快捷菜单的建立2、生成快捷菜单3、快捷菜单的执行在选定对象的RightClick事件中添加命令:DO快捷菜单名.mpr例7.3设计两个快捷菜单。一个名为P7_1,它是表单的快捷菜单,它含有两个菜单选项:学生自然情况、学生成绩。选学生自然情况显示”欢迎使用学生管理系统”,选学生成绩显示”欢迎使用学生成绩管理系统”。另一个名为P7_2,它是表单中标签labell的快捷菜单,它含有3个菜单项:快捷菜单使用说明,快捷菜单的操作,快捷菜单的帮助。要求选每个菜单项都要显示相应的信息对话框。表单如下图所示。7.2建立工具栏工具栏是将那些使用频繁的多种功能,转化成直观、形象、快捷、高速、简单方便的图形工具的集合。它已成为应用程序中不可缺少的组成部分。可以将那些用户经常重复执行的任务定义成自定义工具栏,以加速任务的执行。1、运用容器定义自定义工具栏这种方法是在表单中放置一个容器控件。在容器中可放图形化的按钮或复选框,让这些按钮或复选框完成不同的功能。例7.4设计一个表单,表单中有一个标签控件显示”欢迎”,用容器设计一个工具栏,内有两个图形工具,一个为红色,它可将“欢迎”两字的颜色变为红色。另一个为隶书,它可将“欢迎”两字的字体变为隶书。若不选用工具栏,“欢迎”为黑色黑体。2、用定义工具栏类定义自定义工具栏这种方法是定义一个基于工具栏类的自定义工具栏类,在表单集中创建自定义工具栏对象,这个自定义工具栏是属于整个表单集的。(1)自定义工具栏类(2)将类添加到工具栏中(3)在表单集中创建自定义工具栏对象(4)sys(1500)函数格式:sys(1500,系统菜单项名,菜单名|子菜单名)功能:激活VFP系统由子菜单名或菜单名指定的子菜单中由系统菜单项名指定的菜单项。例7.5设计一个带有图形工具栏的表单如下图所示。图形工具栏共有6个按钮分别为新建、打开、保存、剪切、复制、粘贴。在Edit1,Edit2中可利用工具栏自身或相互进行复制、剪切、粘贴。7.3小结菜单和工具栏已成为应用程序必不可少的组成部分,菜单可以使用户一目了然的知道应用程序的总体功能和结构;工具栏可以使用户更为简捷地使用常用工具,因此菜单和工具栏是直接与用户交互的界面。菜单的设计应先规划后创建,菜单分为两种:一种为下拉式菜单,用于定义应用程序的总体菜单;另一种是快捷菜单,它是针对具体对象而响应的菜单。在这里介绍了两种工具栏,一种为用容器中放按钮或复选框制作的工具栏;一种为用类制作的工具栏,在实际应用中应根据不同需要进行选择应用。