数据库应用 VFP 6.0第9章 菜单程序设计ppt课件.pptx
教师:郑州E-mail: guan_,Visual FoxPro程序设计教程,第9章 菜单程序设计,菜单和工具栏在应用程序中是必不可少的。开发者通过菜单将应用程序的功能、内容有条理地组织起来展现给用户使用。开发者通过工具栏为用户提供快捷、简单、方便的使用工具。菜单和工具栏是应用程序与用户最直接交互的界面。VFP为开发者提供了自定义菜单和工具栏的功能,从而使开发者能根据需要设计符合实际应用的菜单和工具栏。,9.1 VFP 6.0 系统菜单,9.1.1菜单结构 在应用程序中一般采用两种菜单,一种为下拉式菜单(条形菜单+弹出式菜单),另一种为快捷菜单。VFP支持条式菜单和弹出式菜单。,9.1.2系统菜单,条形菜单常见选项的名称及内部名字条形菜单本身的内部名字_MSYSMENU,各弹出式菜单的内部名字,编辑菜单常用选项菜单项的内部名供系统识别,可以在代码中引用.如引用编辑菜单中的撤销:_MED_UNDO,设置菜单命令:SET SYSMENU ON | OFF | AUTOMATIC| TO | TO | TO | SAVE | NOSAVEON:允许程序执行时访问系统菜单OFF:不允许程序执行时访问系统菜单AUTOMATIC:可使系统菜单显示,可访问系统菜单TO :重新配置系统菜单TO :重新配置系统菜单TO :将系统菜单恢复为缺省配置SAVE:将当前的系统菜单配置指定为缺省配置NOSAVE:将VFP系统菜单配置指定为缺省配置不带参数的 SET SYSMENU TO命令将使系统菜单不可用,9.2 下拉式菜单设计,需要规划内容:1按用户的要求规划菜单;2确定需要哪些菜单,有多少个菜单及子菜单;3菜单应放在界面的哪个位置;4确定每个菜单的标题和完成的任务;5将菜单上的菜单项限制在一个屏幕内;6确定哪些菜单项需要设置热键和快捷键;7确定每个菜单项的动作:弹出子菜单、执行一条命令、执行一个过程。,9.2.1 菜单设计的基本过程,下拉式菜单是应用程序的总体菜单。下拉式菜单是由条形菜单和弹出式菜单组成。VFP菜单就是一个下拉式菜单。在VFP主界面窗口中主菜单就是一个条形菜单,当在主菜单栏选中一菜单项时,在该菜单项下方出现的菜单就是弹出式菜单。VFP使用可视化设计工具菜单设计器来创建菜单。,建立下拉式菜单的基础步骤包括: 1、菜单文件的建立(.mnx .mnt)(1)界面方式(2)命令方式 格式:CREAT MENUMODIFY MENU,2、定义菜单3、生成菜单程序(.mpr)4、运行菜单程序(.mpx)(1)界面方式(2)命令方式 格式:DO &后缀名不可省略5、正确退出菜单的常用命令1)恢复VFP系统菜单标准配置格式:SET SYSMENU NOSAVE2)恢复VFP主窗口命令格式:MODIFY WINDOW SCREEN3)恢复VFP系统菜单命令格式:SET SYSMENU TO DEFAULT4)激活命令窗口命令格式:ACTIVATE WINDOW COMMAND,9.2.2定义菜单1、菜单设计器 窗口2、显示窗口(1)常规选项(2)菜单选项,例1 利用菜单设计器建立一个下拉式菜单要求:条形菜单包括 文件(F),浏览(B),管理(M),退出(R),分别激活菜单WJ,LL,GL,退出恢复系统默认菜单WJ菜单包含新建(Ctrl+N),打开(Ctrl+O),关闭(Ctrl+Q)LL菜单包含 图书,读者,借阅三表GL菜单包含执行图书表单和读者表单,例2:创建可执行文件 计算.exe,执行该文件时,首先在屏幕上显示一个下拉式菜单。当选择计算圆周长时,运行程序文件zc.prg;当选择计算圆面积时,运行程序文件mj.prg。,例9.1 设计一个下拉式菜单要求:条形菜单中的菜单项有数据查询(C),数据维护(W),输出报表(B),退出(R)数据查询的弹出式菜单有按学号查询,按姓名查询,它们的快捷键分别为Ctrl+H,Ctrl+X数据维护的弹出式菜单有维护学生表,维护学生成绩表,快捷键分别为Ctrl+E,Ctrl+F输出报表无弹出式菜单。,9.2.3顶层表单添加菜单,需要作如下几步:1)在定义菜单时将常规选项对话框中顶层表单复选框选中。2)创建一个顶层菜单,即将表单的ShowWindow属性设为23)在表单的Init事件中加入如下运行菜单的命令。格式:DO WITH THIS, .T.4)在表单的Destory事件中加入释放菜单的命令。格式:RELEASE MENU EXTENDED,例9.2 建立如图所示的顶层表单,9.3 快捷菜单设计,快捷菜单是由一个或一组上下级的弹出式菜单组成。它主要是对某一个界面对象选中后单击鼠标右键而出现的,它是针对用户对某一具体对象操作时快速出现的菜单,在这一方面与下拉式菜单不同。由于快捷菜单简单方便,用户非常容易掌握它的操作和使用,因此应用极为普遍。 1、快捷菜单的建立:RightClick事件2、生成快捷菜单 3、快捷菜单的执行(1)在清理代码中增加清除菜单的命令:RELEASE POPUPSEXTENDED(2)在设置代码中添加接受当前表单对象引用命令:PARAMETERS (3)在选定对象的RightClick事件中添加命令:DO .mpr WITH THIS,例4 为表单kt创建一个快捷菜单kj要求 选择 表文件名 组合框内显示表文件名 选择 图书表字段 组合框显示学生表字段名 选择 读者表字段 组合框显示课程表字段名 选择 组合/列表框 组合框与列表框进行切换,例9.3 设计两个快捷菜单。一个名为P7_1,它是表单的快捷菜单,它含有两个菜单选项:学生自然情况、学生成绩。选学生自然情况显示”欢迎使用学生管理系统”,选学生成绩显示”欢迎使用学生成绩管理系统”。另一个名为P7_2,它是表单中标签labell的快捷菜单,它含有3个菜单项:快捷菜单使用说明,快捷菜单的操作,快捷菜单的帮助。要求选每个菜单项都要显示相应的信息对话框。表单如下图所示。,9.4 定义工具栏,工具栏是将那些使用频繁的多种功能,转化成直观、形象、快捷、高速、简单方便的图形工具的集合。它已成为应用程序中不可缺少的组成部分。可以将那些用户经常重复执行的任务定义成自定义工具栏,以加速任务的执行。定义工具栏常用的方式有两种:容器控件、定义类,例9.5 设计一个表单,表单中有一个标签控件显示”欢迎”,用容器设计一个工具栏,内有两个图形工具,一个为红色,它可将“欢迎”两字的颜色变为红色。另一个为隶书,它可将“欢迎”两字的字体变为隶书。若不选用工具栏,“欢迎”为黑色黑体。,定义工具栏步骤,1、定义工具栏类2、在自定义工具栏类中添加对象 这种方法是在表单中放置一个容器控件。在容器中可放图形化的按钮或复选框,让这些按钮或复选框完成不同的功能。3、定义对象操作4、在表单集中添加工具栏,小结,菜单和工具栏已成为应用程序必不可少的组成部分,菜单可以使用户一目了然的知道应用程序的总体功能和结构;工具栏可以使用户更为简捷地使用常用工具,因此菜单和工具栏是直接与用户交互的界面。菜单的设计应先规划后创建,菜单分为两种:一种为下拉式菜单,用于定义应用程序的总体菜单;另一种是快捷菜单,它是针对具体对象而响应的菜单。 在这里介绍了工具栏用容器中放按钮或复选框制作的工具栏。,