VisualFoxPro数据库与程序设计中国水利水电出版社2第9章关系数据库标准语言SQL目录上一页下一页退出3本章要点9.1菜单系统9.2创建应用系统菜单9.3快捷菜单设计9.4工具栏目录上一页下一页退出49.1菜单系统9.1.1菜单系统的结构各个应用程序的菜单系统内容可能是不同的,但其基本结构是相同的。菜单系统均由四大部分组成:菜单栏(MenuBar)、菜单标题(MenuTitle)、菜单(Menu):菜单项(MenuItem)。如图9-1所示。9.1.2菜单系统的设计要为一应用程序创建一套菜单系统,通常按照以下步骤进行:1.规划与设计菜单系统2.创建菜单和子菜单目录上一页下一页退出53.菜单系统指定任务4.生成菜单程序菜单与表单不同,它不能直接在设计器中生成程序代码。而必须专门生成菜单程序代码。在设计器中所做的一切将被保存在一个带.MNX扩展名的文件中,在这个文件中保存了有关菜单系统的所有信息,它实际上就是一个表文件。从“菜单”菜单上选择“生成”命令,生成的菜单程序,扩展名为MPR。5.运行及测试菜单系统目录上一页下一页退出69.2.1“菜单设计器”的使用在VisualForPro中,采用以下三种方式进入菜单设计器:•使用“项目管理器”。即从项目管理器中选择“其他”选项卡,然后选择“菜单”,并单击“新建”按钮。•使用“文件”菜单中的“新建”命令,选择“菜单”;然后再选择“新建文件”。•使用CREATEMENU命令。系统弹出如图9-2所示的“新建菜单”对话框,该对话框中有两项选择:菜单、快捷菜单,现选择“菜单”,屏幕即进入“菜单设计器”的界面,如图9-3所示。9.2创建应用系统菜单目录上一页下一页退出7“菜单设计器”的界面由以下几部分构成:(1)“菜单名称”框在此栏里输入显示在菜单系统中的菜单的标题或菜单项的名称。如果用户想为菜单项加入访问鍵,即利用键盘访问菜单的方法,可以在欲设定为访问鍵的字母前面加上一反斜杠和小于号(\)。例如,在“文件”菜单中设计访问键为“F”,只要在菜单名称“文件”的后面加上“(\F)”即可。目录上一页下一页退出8(2)“结果”栏此栏选定菜单项的功能类别。单击该栏将出现一个下拉框,有命令、子菜单、过程和填充名称或菜单项等四种选择。(3)“选项”按钮单击该按钮将打开一个“提示选项”对话框,如图9-4所示,可在其中为各菜单项设置各种属性。(4)菜单级菜单系统是分级的,最高一级是菜单栏里的菜单,其次是每个菜单下的子菜单。从该下拉列表框中选择适当菜单级可以进行相应菜单的设计。(5)“菜单项”命令按钮提供设计菜单时的操作功能。在菜单项选项组中有三个命令按钮,即:插入、删除、插入栏。目录上一页下一页退出9(6)预览显示所创建的菜单。一旦启动了菜单设计器,VisualFoxPro的系统菜单会多出一项“菜单”,该菜单中集成了与菜单设计相关的菜单项,如图所示。目录上一页下一页退出109.2.2应用系统菜单设计现以一个简单的学生管理系统的菜单(表9-1)为例说明使用菜单设计器的一般方法。1.创建主菜单例9.1建立一个菜单文件,其名定义为“stu_menu”,其主菜单包含“系统管理”、“数据输入与维护”、“查询”、“报表”和“帮助”5个菜单选项。目录上一页下一页退出11操作步骤如下:(1)打开“文件”菜单,选择“新建”,进入“新建”窗口。(2)在“新建”窗口,单击“菜单”,再按“新建文件”按钮,进入“新菜单”窗口。如图9-2所示(3)在“新菜单”窗口,选择“菜单”,进入“菜单设计器”窗口(4)在“菜单设计器”窗口,定义主菜单中各菜单选项名。如图9-6所示。(5)保存菜单文件,文件名为“stu_menu.mnx”。目录上一页下一页退出122.创建子菜单创建子菜单,实际上是给主菜单定义子菜单选项。当菜单栏内的菜单添加完成后,可以针对每一个菜单单击“创建”按钮来录入下一级菜单。一旦进入下一级菜单的设置,在“菜单级”框中显示的就不是“菜单栏”了,而是该下级菜单所对应的名称。例9.2给“stu_menu.mnx”中各菜单选项创建子菜单。操作步骤如下:(1)打开菜单,进入“菜单设计器”窗口。(2)在“菜单设计器”窗口,选择主菜单选项中的“系统管理”,再选择“创建”按钮,进入“菜单设计器”子菜单编辑窗口。目录上一页下一页退出13(3)在“菜单设计器”子菜单编辑窗口,定义“系统管理”选项中各子菜单选项名,如图9-7所示。(4)在“菜单设计器”子菜单编辑窗口,定义“数据输入与维护”选项中各子菜单选项名。如图9-8所示。目录上一页下一页退出14(5)将以上菜单用“stu_menu”为名保存在相应的文件夹中,结束创建子菜单的操作。3.为菜单或菜单项指定任务在创建菜单系统时,需要考虑系统访问的简便性,必须为菜单和菜单项指定所执行的任务,如指定访问键、添加键盘快捷鍵、显示表单、工具栏以及其他菜单系统。菜单选项的任务可以是子菜单、命令或过程。注意:如果预计在若干个地方都会使用同样一组命令,则应编写一个过程。该过程必须在菜单清理代码或其他菜单、对象能引用的位置明确命名和编写。现以学生管理系统菜单为例对该菜单指定任务,有关菜单所指定的任务参见表9-2。目录上一页下一页退出15为菜单项“退出”定义过程代码。单击菜单项的“创建”按钮,打开过程编辑器输入如下代码:CLOSEDATABASEALLSETSYSMENUTODEFAULT&&恢复系统菜单CANCEL4.设置常规选项与菜单选项(1)“常规选项”对话框“常规选项”是针对整个菜单的,它的主要作用:其一,为整个菜单指定一个过程。其二,可以确定用户菜单与系统菜单之间的位置关系。其三,为菜单增加一个初始化过程和清理过程。目录上一页下一页退出16选择“显示”菜单中的“常规选项”命令,屏幕会出现图9-10所示的“常规选项”对话框。(2)“菜单选项”对话框当选择“查看”菜单中的“菜单选项”,显示如图9-11所示的“菜单选项”对话框。该对话框中主要有两具功能:一是为指定的菜单编写一个过程;二是修改菜单项的名称。5.保存菜单在菜单设计过程中,可以随时使用“预览”按钮预览所设计的菜单。菜单设计完成后,单击“文件”菜单中的“保存”按钮,结果保存在菜单定义文件stu_menu.mnx和备注文件stu-_menu.mnt中。目录上一页下一页退出176.生成菜单程序用“菜单设计器”设计的菜单文件其扩展名为.MNX,通过生成器的转换,生成的菜单文件其扩展名为.MPR。当.MNX类型文件转换成.MPR类型文件后,才可使用DO命令调用菜单文件。操作步骤如下:(1)打开菜单(扩展名为.MNX)进入“菜单设计器”窗口;(2)单击【菜单】|【生成】菜单项,打开“生成菜单”对话框,如图9-13所示;(1)输入菜单文件名(扩展名为.MPR),生成对应的菜单程序文件。目录上一页下一页退出187.运行菜单三种方式:(1)菜单方式:单击【程序】|【运行】菜单项,并选择需运行的菜单程序文件名;(2)命令方式:在命令窗口直接输入DO菜单文件名.MPR命令;(3)项目管理器方式:在“项目管理器”中选择相应菜单文件并单击“运行”按钮。目录上一页下一页退出199.2.3在顶层表单中添加菜单若要在顶层表单中添加菜单,可以按以下步骤操作:(1)在“常规选项”对话框中选择“顶层表单”复选框,创建顶层表单的菜单;(2)将表单的ShowWindow属性设置为“2-作为顶层表单”;(3)在表单的Init事件中,运行菜单程序并传递两个参数:DO<文件名>WITHoForm,IAutoRename目录上一页下一页退出20【例9-3】在student.scx表单中建立一个如图9-14所示的菜单。目录上一页下一页退出21操作步骤如下:(1)打开stu_menu.mnx菜单文件;(2)单击【显示】|【常规选项】菜单项,在“常规选项”对话框中选择“顶层表单”复选框;(3)单击“保存”按钮保存设计的菜单;(4)单击【菜单】|【生成】菜单项,打开“生成菜单”对话框;(5)在“生成菜单”对话框中确定菜单程序保存位置,单击“生成”按钮;(6)打开表单文件student.scx,并将其表单的ShowWindow属性设置为“2-作为顶层表单”;(7)在表单的Init事件代码中添加调用菜单程序的命令:DOstu_menu.mprWITHTHIS,.t.目录上一页下一页退出229.3快捷菜单设计创建快捷菜单与创建下拉菜单的方法类似,主要步骤如下:(1)打开“快捷菜单设计器”窗口。单击【文件】|【新建】|【菜单】|【新建文件】|【快捷菜单】菜单项或按钮,打开“快捷菜单设计器”窗口,其界面及使用方法与“菜单设计器”窗口完全相同。如图9-15所示;目录上一页下一页退出23(2)添加菜单项;(3)为每个菜单项指定任务;(4)在快捷菜单的“清理”代码中添加清除菜单的命令,使得在选择、执行菜单命令后能及时清除菜单,释放其所占用的内存空间。命令格式如下:RELEASEPOPUPS快捷菜单名[EXTENDED](5)保存菜单,并生成.MPR菜单文件;(6)将快捷菜单指派给某个对象,只需为该对象的“RightClick”事件编写如下代码:DO<快捷菜单程序文件名>,其中文件的扩展名.MPR不能省略。目录上一页下一页退出24【例9-4】为编辑框控件创建快捷菜单。操作步骤:(1)打开“快捷菜单设计器”窗口,定义快捷菜单各选项的内容,如图9-16所示;(2)单击【显示】|【常规选项】菜单项,打开“常规选项”对话框;(3)选择“设置”复选框,打开“设置”代码编辑窗口,在窗口中输入接受当前表单对象引用的参数语句:PARAMETERSmyform;(4)选择“清理”复选框,打开“清理”代码编辑窗口,在窗口中输入清除快捷菜单的命令:RELEASEPOPUPSkjcd;目录上一页下一页退出25(5)保存菜单,并生成kjcd.mpr菜单文件;(6)打开需要设置快捷菜单的表单,并将其“RightClick”事件代码设置成调用快捷菜单程序的命令。目录上一页下一页退出269.4工具栏在许多应用软件中都有自己的工具栏。设置工具栏的主要目的是为方便用户操作。1.定制系统工具栏定制系统工具栏的操作步骤:(1)打开需定制设置的系统工具栏,如“报表设计器”工具栏;(2)单击【显示】|【工具栏】菜单项,打开“工具栏”对话框;目录上一页下一页退出27(3)单击“定制”按钮,打开“定制工具栏”对话框,如图9-18所示。在“分类”列表框选择某类工具栏,“按钮”栏显示相关的所有按钮,选中某个按钮后,“说明”栏显示该按钮的相关说明文本;目录上一页下一页退出28(4)定制设置工具栏。(5)工具栏定制完成,单击“关闭”按钮。2.创建新的工具栏可以为VisualFoxPro创建新的系统工具栏,操作步骤如下:(1)单击图9-17中“新建”按钮,打开如图9-20所示“新工具栏”对话框;(2)输入新工具栏名称如“我的工具栏”,单击“确定”按钮;(3)屏幕出现新建的“我的工具栏”工具栏(没有一个按钮),同时打开“定制工具栏”对话框;目录上一页下一页退出29(4)将相关按钮拖到该工具栏,创建、设置对应的功能按钮;(5)完成后单击“关闭”按钮,新建的“我的工具栏”如图9-21所示。