《VF-菜单和工具栏设计.ppt》由会员分享,可在线阅读,更多相关《VF-菜单和工具栏设计.ppt(37页珍藏版)》请在金锄头文库上搜索。
1、项目项目6 菜单和工具栏设计菜单和工具栏设计 【项目描述】【项目描述】 项目6包括两个实训任务: 任务6.1学生管理信息系统菜单制作设计菜单 任务6.2创建自定义工具栏 【项目目标项目目标】 会使用“菜单设计器”设计菜单;会设计快捷菜单;会定制VFP工具栏;会定义工具栏类;会在表单中添加自定义工具栏;会协调菜单和用户自定义工具栏。 重点:重点: 会设计菜单和快捷菜单;会定义工具栏类;会在表单中添加自定义工具栏。 难点:难点: 菜单、工具栏设计与应用。项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 任务描述任务描述 设
2、计学生管理信息系统的菜单、快捷菜单。 技能目标技能目标 熟悉Visual FoxPro的系统菜单的结构、特点和行为,学会对系统菜单的灵活设置方法。 熟练掌握下拉式菜单的设计方法,学会使用菜单设计器定义菜单、生成菜单程序和运行菜单程序的方法;学会在菜单中调用表单的方法。 掌握为顶层表单添加菜单的方法,学会在表单中调用下拉式菜单的方法。 掌握快捷菜单的设计方法,学会在表单中调用快捷菜单的方法。项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 任务分析任务分析 理解Visual FoxPro 6.0系统的菜单设计功能、结构,
3、结合应用实际设计下拉式菜单、为顶层表单添加菜单、设计快捷菜单。 学习时注意联系实际理解下拉式菜单、顶层表单和快捷菜单,在了解的基础上设计创建主菜单、创建子菜单、指定菜单项任务。 菜单系统规划 1. 设计原则 (1) 根据用户任务组织菜单系统;(2) 给每个菜单和菜单选项设置一个意义明了的标题;(3) 按照估计的菜单项使用频率、逻辑顺序或字母顺序组织菜单项 ;(4) 在菜单项的逻辑组之间放置分隔线 ;(5) 给每个菜单和菜单选项设置热键或键盘快捷键;(6) 将菜单上菜单项的数目限制在一个屏幕之内,如果超过了一屏,则应为其中一些菜单项创建子菜单;(7) 在菜单项中混合使用大小写字母,只有强调时才全
4、部使用大写字母。 2. 设计步骤 (1)菜单系统规划;(2)建立菜单和子菜单;(3)将任务分派到菜单系统中 (4)生成菜单程序;(5)测试并运行菜单系统项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 任务实施任务实施 创建菜单时利用系统菜单是用户调用Visual Foxpro 系统功能的一种方法和途径,在Visual FoxPro中,可以利用“菜单设计器”来设计并生成下拉式菜单与快捷菜单。若想从已有的Visual FoxPro菜单系统开始创建菜单,则可以使用“快速菜单”功能。 6.1.1认识认识VFP菜单结构菜单结
5、构 Visual Foxpro支持两种类型的菜单:条形菜单和弹出式菜单。 菜单项的名称显示于屏幕供用户识别,菜单及菜单项的内部名字或选项序号则用于在代码中引用。 每一个菜单选项都可以选择地设置一个热键和一个快捷键。 热键通常是一个字符,当菜单激活时,可以按菜单项的热键快速选择该菜单项。 快捷键通常是CTRL和另一个字符键组成的组合键。不管菜单是否被激活,都可以通过快捷键选择相应的菜单选项。 任何类型的菜单,当选择其中某个选项时,都会有一定的动作。项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 项目项目6 菜单和工具
6、栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 6.1.2学习系统菜单的结构并定制系统菜单学习系统菜单的结构并定制系统菜单 Visual FoxPro系统菜单是一个典型的菜单系统,其主菜单是一个条形菜单。选择条形菜单中的每一个菜单项都会激活一个弹出式菜单。 在Visual FoxPro中,每一个条形菜单都有一个内部名字和一组菜单选项,每个菜单选项都有一个名称(标题)和内部名字。例如,Visual FoxPro主菜单的内部名字为_MSYSMENU,条形菜单项“文件”、“编辑”和“窗口”的内部名字分别为_MSM_FILE,_MSM_EDIT
7、,_MSM_WINDOW。 每一个弹出式菜单也有一个内部名字和一组菜单选项,每个菜单选项则有一个名称(标题)和选项序号。项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 通过SET SYSMENU命令可以允许或禁止在程序执行时访问系统菜单,也可以重新设置系统菜单。 命令格式是:SET SYSMENU ON|OFF|AUTOMATIC|TO |TO |TO DEFAULT|SAVE|NOSAV
8、E项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 6.1.3认识菜单设计的基本过程认识菜单设计的基本过程 不管应用程序的规模多大,打算使用的菜单多么复杂,创建菜单系统都需要以下步骤: (1)规划与设计菜单系统。确定需要哪些菜单项、菜单项出现在界面的什么位置、哪些菜单要有子菜单、哪些菜单要执行相应的操作等。 (2)建立菜单项和子菜单。使用菜单设计器可以定义菜单标题、菜单项和子菜单。 (3)按实际要求为菜单系统指定任务。指定菜单所要执行的任务,例如显示表单或对话框等。菜单建立好之后将生成一个以.mnx为扩展名的菜单文件
9、和以.mnt为扩展名的菜单备注文件。 (4)利用已建立的菜单文件,生成扩展名为.mpr的菜单程序文件。 (5)运行生成的菜单程序文件。项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 6.1.4 学做主菜单学做主菜单 1.打开菜单设计器窗口 使用“新建”对话框打开菜单设计器窗口 “文件”菜单“新建”命令 “新建”对话框; “常用”工具栏“新建”按钮 “新建”对话框; “新建”对话框 菜单新建文件菜单菜单设计器。项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制
10、作设计菜单设计菜单 使用命令打开菜单设计器窗口 格式:create menu 文件名 modify nemu 文件名 功能:打开菜单设计器 使用“项目管理器”打开菜单设计器窗口 “项目管理器”窗口菜单新建文件菜单设计器项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 2.“菜单设计器”窗口 项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 例1:为“学籍管理系统”创建一个菜单文件“学籍管理菜单.mnx”。 设计的主菜单包括“浏览”“编辑”“
11、打印”“退出”,它们的子菜单如下。 浏览 编辑 打印 退出 学生表 撤销 学生报表 课程表 剪切 课程报表 成绩表 复制 成绩报表 粘贴项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 (1) 创建菜单栏的主菜单 项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 (2) 创建子菜单 对于每个菜单项,都可以创建包含其它菜单项的子菜单。项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作
12、设计菜单设计菜单 项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 (3) 为菜单项指定任务 选中主菜单中的“退出”菜单项,在“结果”列选择“过程”,单击右边的“创建”按钮,弹出“过程”编辑窗口,输入以下代码后关闭窗口,此时“创建”按钮自动变为“编辑”按钮。 SET SYSMENU NOSAVE SET SYSMENU TO DEFAULT项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 再选中主菜单中的“浏览”菜单项,单击“结果”列右边的
13、“编辑”按钮,在该菜单页选中“学生表”菜单项,在“结果”列选择“过程”,单击右边的“创建”按钮,弹出 “过程”编辑窗口,输入以下过程代码: SELECT 0 USE 学生 BROWSE USE IN 学生 用同样的方法,在“课程表”菜单项的“过程”编辑窗口输入过程代码: SELECT 0 USE 课程 BROWSE USE IN 课程项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 在“成绩表”菜单项的“过程”编辑窗口输入过程代码: SELECT 0 USE 成绩 BROWSE USE IN 成绩 选中主菜单中的“打
14、印”菜单项,单击“结果”列右边的“编辑”按钮,切换到子菜单页。在该菜单页中选中“学生报表”菜单项,在“结果”列选择“命令”,此时“结果”列右边出现一个文本框,输入命令: REPORT FORM 学生信息报表 PREVIEW 其功能是预览已创建的“学生信息报表”,若要求打印报表,则去掉命令中的PREVIEW项。用同样的方法在“课程报表”菜单项的“结果”列输入命令: REPORT FORM 课程信息报表 PREVIEW 其功能是预览已创建的“课程信息报表”。 在“成绩报表”菜单项的“结果”列输入命令: REPORT FORM 学生成绩报表 PREVIEW 其功能是预览已创建的“学生成绩报表”。项目
15、项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 (4) 保存菜单文件 单击“常用”工具栏上的“保存”按钮,将上面设计的菜单保存到菜单文件“学籍管理菜单.mnx”中。 (5) 生成菜单程序文件 扩展名为.mnx的菜单文件本身是一个表文件,并不能够直接执行,必须由菜单文件生成菜单程序文件(扩展名为.mpr),才能够执行。其操作方法是选择主窗口中的“菜单”菜单项中的“生成”命令,弹出“生成菜单”对话框,在对话框中指定菜单程序文件的文件名后单击“生成”按钮完成。本例的菜单程序文件取默认的文件名“学籍管理菜单.mpr”。项目项目
16、6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 (6) 运行菜单 在“命令窗口”输入命令: DO 菜单程序文件名.mpr 其中的文件扩展名.mpr不能省略。本例输入命令: DO 学籍管理菜单.mpr。 此时Visual FoxPro的系统菜单被当前菜单所代替,如图6-6所示。单击“退出”菜单项可恢复Visual FoxPro的系统菜单。运行菜单也可以使用“项目管理器”或主窗口中的“程序”菜单实现。项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单
17、6.1.5为顶层表单添加菜单为顶层表单添加菜单 一般情况下,使用“菜单设计器”设计的菜单是在Visual FoxPro的窗口中运行的,也就是说,用户菜单不是在窗口的顶层,而是在第二层,因为“Microsoft Visual FoxPro”标题一直都被显示。 要去掉“Microsoft Visual FoxPro”标题并换成用户指定的标题,可以通过顶层表单的设计来实现。 顶层表单添加菜单的步骤如下: 在“菜单设计器”窗口中设计下拉式菜单; 在下拉式菜单的“常规选项”对话框中选中“顶层表单”复选框。 将表单的ShowWindow属性值设置为2,使其成为顶层表单。 在表单的Init事件代码中添加调用
18、菜单程序的命令,格式:do 文件名.mpr with this ,菜单名 在表单的Destroy事件代码中添加清除菜单的命令,格式:release menu 菜单名 extended项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 例2:设计 “学籍管理系统”界面表单,并将“例1”修改过的下拉式菜单显示于表单顶层,将菜单中的“退出”菜单项的功能修改成关闭表单的功能。 项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 (1) 打开任务1中的“
19、学籍管理菜单.mnx”文件,从主窗口的“显示”菜单打开“常规选项” 对话框,选中“顶层表单”复选框,关闭对话框。 (2) 将“退出”菜单项的过程代码修改为: 学籍管理表单.Release 其功能是关闭表单。将修改后的菜单文件另存为:学籍管理顶层菜单.mnx,并生成“学籍管理顶层菜单.mpr”菜单程序文件。 (3) 打开“表单设计器”窗口,分别添加3个“标签”控件,其标题分别为:“欢迎使用”“学籍管理系统”“v 1.0”,设置各控件的属性值。项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 (4) 在表单的Init事件
20、代码中添加调用菜单程序的命令: DO 学籍管理顶层菜单.mpr WITH This, “xjglcd” 在表单的Destroy事件代码中添加清除菜单的命令: RELEASE MENU xjglcd EXTENDED (5) 将以上所设计的表单保存到“学籍管理表单.scx”文件中,运行该表单即可显示窗口界面,并可通过菜单项调用相应的功能。 说明:在该例中涉及到在表单中调用菜单和在菜单中引用表单的方法。在表单中调用菜单用菜单程序名调用,并给条形菜单定义了内部名字“xjglcd”,释放菜单用该内部名字引用菜单,若未给条形菜单定义内部名字,则可用菜单程序名引用菜单。菜单的“退出”菜单项中使用表单文件名
21、“学籍管理表单”引用表单,因为表单运行后自动建立了一个表单引用变量,该变量名与表单文件名相同。项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 6.1.6创建快捷菜单创建快捷菜单 快捷菜单一般从属于某个界面对象,当用鼠标右击该对象时,就会在单击处弹出快捷菜单。快捷菜单通常列出与处理相应对象有关的一些功能命令。 快捷菜单一般是一个弹出式菜单,或者由几个具有上下级关系的弹出式菜单组成。快捷菜单的设计:使用“快捷菜单设计器”。 使用“新建”对话框打开“快捷菜单设计器” “文件”菜单“新建”命令 “新建”对话框 “常用”工具
22、栏“新建”按钮 “新建”对话框 “新建”对话框菜单新建文件快捷菜单菜单设计器 在“快捷菜单设计器”中设计快捷菜单,具体方法与设计下拉式菜单相似。设计完成后保存在扩展名为.mnx的菜单表文件中。 项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 在快捷菜单的“菜单选项”对话框中定义快捷菜单的内部名字 在快捷菜单的“常规选项”对话框的“清理”代码框中添加清除菜单的命令。 格式:release popups 快捷菜单内部名字 extended 生成扩展名为.mpr的菜单程序文件: “菜单设计器” “菜单”菜单“生成”命令确
23、定 在表单设计器环境下,选定需要添加快捷菜单的对象。 在选定对象的RightClick事件代码中添加调用快捷菜单程序的命令:do 快捷菜单程序文件名.mpr项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 例3:为某表单建立一个快捷菜单kjcd,其选项有:日期、时间、变大和变小,时间与变大之间用分组线分隔。如图所示。选中日期或时间选项时,表单标题将变成当前日期或时间。选中变大或变小选项时,表单大小将缩放10%。项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制
24、作设计菜单设计菜单 例3:为某表单建立一个快捷菜单kjcd,其选项有:日期、时间、变大和变小,时间与变大之间用分组线分隔。如图所示。选中日期或时间选项时,表单标题将变成当前日期或时间。选中变大或变小选项时,表单大小将缩放10%。 快捷菜单的“设置”代码是一条接收当前表单对象引用的参数语句: papameters mfref菜单名称结果日期(D)过程:s=dtoc(date(),1) ss=left(s,4)+年+subs(s,5,2)+月 +right(s,2)+日 mfref.caption=ss时间过程:s=time() ss=left(s,2)+时+subs(s,4,2)+分 +righ
25、t(s,2)+秒mfref.caption=ss-加分组线分隔上下两项变大(L)过程:w=mfref.width h=mfref.heightMfref.width=w+w*0.1 mfref.height=h+h*0.1变小(S)过程:w=mfref.width h=mfref.heightMfref.width=w-w*0.1 mfref.height=h-h*0.1 快捷菜单各选项的名称(标题)和结果如下表所示:项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 在快捷菜单的“菜单选项”对话框中定义快捷菜单的内部
26、名字:kjcd 快捷菜单的“清理”代码中包含清除快捷菜单的命令:release popups kjcd 在表单的RightClick事件代码中添加调用快捷菜单程序的命令:do kjcdlx.mpr with this项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.1 学生管理信息系统菜单制作学生管理信息系统菜单制作设计菜单设计菜单 任务小结任务小结 了解了Visual FoxPro系统菜单的结构、特点和行为,就可以通过系统设置菜单。 可设置的菜单有:下拉式菜单、条形菜单、快捷菜单 使用菜单设计器定义菜单后通过生成菜单程序运行菜单,就可以在菜单中调用表单。 应用顶层表单添加菜单的方法,
27、学会在表单中调用下拉式菜单的方法。 要去掉“Microsoft Visual FoxPro”标题并换成用户指定的标题,可以通过顶层表单的设计来实现。项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.2 创建自定义工具栏创建自定义工具栏 任务描述任务描述 当应用程序中有一些需要用户频繁执行的重复任务时,除了在菜单中有执行该任务的菜单项外,还可以给该任务在工具条中增添一个按钮,来简化和加速任务的选择执行。 技能目标技能目标 会定制VFP工具栏;会定义工具栏类;会在表单中添加自定义工具栏;会协调菜单和用户自定义工具栏。 任务分析任务分析 在创建包含菜单和工具栏的应用程序时,某些工具栏按钮与菜
28、单项可能功能相同。工具栏可使用户快速实现某功能,菜单则可以提供键盘快捷键、易读的文字标题。项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.2 创建自定义工具栏创建自定义工具栏 任务实施任务实施 6.2.1 定制定制Visual FoxPro 工具栏工具栏 定制Visual FoxPro 工具栏的操作如下: (1) 从“显示”菜单中选择“工具栏”命令,打开“工具栏”对话框。 (2) 选择“新建”按钮,打开“新建工具栏”对话框。 (3) 在“新建工具栏”对话框中,为工具栏命名,然后单击“确定”按钮,弹出“定制工具栏”对话框。 (4) 选择“定制工具栏”对话框中的一个分类,然后拖动需要的按
29、钮到工具栏上,将按扭添加到工具栏中。 (5) 通过拖动工具栏上的按钮来重排按钮。 (6) 单击“定制工具栏”对话框的“关闭”按钮。项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.2 创建自定义工具栏创建自定义工具栏 6.2.2 自定义工具栏自定义工具栏 要创建自定义工具栏,必须首先为它定义一个类。Visual FoxPro 提供了一个工具栏基类,可以在此基础上创建所需的类。定义工具栏类的操作方法如下: (1) 从项目管理器中选定“类库”后单击“新建”按钮,打开“新建类”对话框。 (2) 在“类名”框中键入新类的名称。 (3) 从“派生于”框中选择“Toolbar”工具栏基类。 (4)
30、 在“存储于”框中键入类库名,保存创建的新类。 (5) 单击“确定”按钮,弹出“类设计器”对话框。 (6) 在该工具条中添加所需控件。 (7) 保存所设计的类 项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.2 创建自定义工具栏创建自定义工具栏 6.2.3 在表单集中添加自定义工具栏在表单集中添加自定义工具栏 在定义了一个工具栏类之后,便可以用这个类创建一个工具栏,可以用表单设计器或者用编写代码的方法将工具栏与表单对应起来。用户可以在表单集中添加工具栏,让工具栏与表单集中的各个表单一起打开。但不能直接在某个表单中添加工具栏。项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.2
31、 创建自定义工具栏创建自定义工具栏 任务小结任务小结 创建工具栏可以使用户快速实现某功能,定义一个工具栏类可在类的基础上创建工具栏,编写代码可以将工具栏与表单对应起来,但不能直接在某个表单中添加工具栏。项目项目6 菜单和工具栏设计菜单和工具栏设计 任务任务6.2 创建自定义工具栏创建自定义工具栏 【项目总结项目总结】 通过本项目的学习学会应用Visual FoxPro系统设置下拉式菜单、条形菜单、快捷菜单等。在菜单设计器中定义菜单并在菜单中调用表单,通过生成菜单程序并运行菜单就可以很方便地调用设置的菜单命令项。 应用顶层表单添加菜单的方法,可以去掉“Microsoft Visual FoxPro”标题并换成用户指定的标题,使菜单更加个性化。 创建工具栏,并在工具栏上创建按钮,通过编写代码可以将工具栏与表单对应起来,可以使用户快速调用某功能。