




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第八章菜单设计与应用,http:/V,VisualFoxPro程序设计,目录,http:/V,VisualFoxPro程序设计,8.1VisualFoxPro系统菜单,在Windows环境下,常见的菜单类型有两种:下拉式菜单和快捷菜单。一、下拉式菜单一般是由一个称作“主菜单”的条形菜单栏和一组称作“子菜单”的下拉式菜单组成。条形菜单栏一般位于应用程序窗口的标题栏的下方,是一个启动应用程序后始终都可以看到的菜单名列表栏。菜单栏中的每个菜单名代表一个主菜单项,每一个主菜单项可以直接对应一个命令或过程。通常,每一个主菜单项对应有一个下拉菜单作为它的子菜单,子菜单中包含了一组菜单选项。子菜单中的每个菜单项可直接对应一条命令,也可对应于下一级子菜单,子菜单里又可以包含一组相关的菜单项,从而形成一种级联的菜单结构。,8.1.1菜单结构,http:/V,VisualFoxPro程序设计,8.1.1菜单结构,在子菜单中,对功能上密切相关的菜单项可以放置分隔线划分菜单选项的组别。菜单项一般都有一个热键,用括号中带下划线的字母表示,同时按ALT键和带下划线的字母键即可下拉出所代表的菜单。快捷键通常是Ctrl键和另一个字符键组成的组合键,不论菜单是否激活,都可以通过快捷键选择相应的菜单项。如图8-1所示。,图8-1VFP系统菜单,http:/V,VisualFoxPro程序设计,8.1.1菜单结构,二、快捷菜单当鼠标指针指向某个界面对象单击鼠标右键,通常会弹出一个快捷菜单,列出针对当前对象的各种可用命令,免除了在主菜单中一一查找的麻烦。快捷菜单一般只有一个弹出式菜单。菜单组中的每个菜单项可直接对应于一条命令,也可对应于一个级联子菜单。图8-2是在VFP命令窗口右击时弹出的快捷菜单,其中列出了与命令窗口操作有关的命令项。,图8-2快捷菜单,http:/V,VisualFoxPro程序设计,8.1.2系统菜单,VisualFoxPro系统菜单是一个典型的菜单系统,其主菜单是一个条形菜单。选择条形菜单中的每一个菜单项都会弹出一个下拉菜单。在VisualFoxPro中,每一个条形菜单都有一个内部名字和一组菜单选项,每个菜单选项都有一个名称(标题)和内部名字。例如,VisualFoxPro主菜单的内部名字为_MSYSMENU,条形菜单项“文件”、“编辑”和“窗口”的内部名字分别为_MSM_FILE,_MSM_EDIT,_MSM_WINDOW。每一个弹出式菜单也有一个内部名字和一组菜单选项,每个菜单选项则有一个名称(标题)和选项序号。例如,_MFILE,_MEDIT,_MWINDOW为弹出式菜单项“文件”、“编辑”和“窗口”的内部名字。菜单项的名称用于在屏幕上显示菜单系统,而内部名字或选项序号则用于在程序代码中引用。,http:/V,VisualFoxPro程序设计,8.1.2系统菜单,通过SETSYSMENU命令可以允许或禁止在程序执行时访问系统菜单,也可以重新设置系统菜单。命令格式:SETSYSMENUON|OFF|AUTOMATIC|TO|TO|TODEFAULT|SAVE|NOSAVE其中:ON允许程序执行时访问系统菜单;OFF禁止程序执行时访问系统菜单;AUTOMATIC可使系统菜单显示出来,可以访问系统菜单;TO子句用于重新设置系统菜单:“TO”以菜单项内部名字列出可用的弹出式菜单,“TO”以条形菜单项内部名字列出可用的子菜单,“TODEFAULT”将系统菜单恢复为缺省配置;SAVE将当前系统菜单配置指定为缺省配置;NOSAVE将缺省设置恢复成VisualFoxPro系统的标准配置。,http:/V,VisualFoxPro程序设计,8.1.2系统菜单,【例8-1】要求仅保留VisualFoxPro系统菜单的“文件”、“工具”、“窗口”和“格式“菜单,其他选项从系统菜单中移去。在命令窗口输入以下命令并执行,执行后系统菜单显示效果如图8-3所示。命令序列:SETSYSMENUTO_MFILE,_MTOOLS,_MWINDOW,_MSM_TEXT,图8-3设置后的菜单窗口,http:/V,VisualFoxPro程序设计,8.1.2系统菜单,【例8-2】将系统菜单恢复成标准菜单。命令序列:SETSYSMENUNOSAVESETSYSMENUTODEFAULT逐条执行上述命令后,系统菜单将恢复成标准设置。【例8-3】从“文件”菜单项的下拉菜单中移去“新建”和“打开”菜单项。通过RELAEASEBAR命令可以从指定的菜单中移去指定的菜单项。命令格式:RELEASEBAROF命令序列:RELEASEBAR_MFI_NEWOF_MFILERELEASEBAR_MFI_OPENOF_MFILE逐条执行上述命令后,“文件”菜单项的下拉菜单中移去了“新建”和“打开”两个菜单项。,http:/V,VisualFoxPro程序设计,82菜单设计,开发一个应用程序通常都需要创建自己的菜单系统。不管应用程序的规模多大,打算使用的菜单多么复杂,创建菜单系统都需要以下步骤:第1步:规划与设计系统:确定需要哪些菜单、出现在界面的何处以及哪几个菜单要有子菜单等等。第2步:创建菜单和子菜单:使用菜单设计器可以定义菜单标题、菜单项和子菜单。第3步:按实际要求为菜单系统指定任务:指定菜单所要执行的任务,例如显示表单或对话框等。另外,如果需要,还可以包含初始化代码和清理代码。初始化代码在定义菜单系统之前执行,其中可以打开文件;声明变量;或将菜单系统保存到堆栈中,以便可以在后面的程序执行中恢复。清理代码中包含的代码在菜单的定义代码之后执行,使菜单和菜单项可用或不可用。第4步:生成菜单程序。第5步:运行生成的程序,测试菜单系统。,http:/V,VisualFoxPro程序设计,8.2.1菜单设计器,要创建用户的菜单系统,可以使用菜单设计器。进入菜单设计器的方法有多种,最简单的方法是:从“文件”菜单中,选择“新建”菜单项,得到新建对话框,选中“菜单”单选按钮,单击“新建文件”按钮进入菜单设计器窗口,如图8-5所示。,图8-5“菜单设计器”对话框,http:/V,VisualFoxPro程序设计,8.2.1菜单设计器,菜单设计器窗口主要由以下几部分组成:(1)菜单名称该列用于指定各菜单项的标题名称及菜单项的访问键。例如:定义一个标题名为“文件”的菜单项,并设置其访问键为F键,可在菜单名栏中输入“文件(F)”。要用分隔线功能将相关的菜单项分别成线,在“菜单名称”栏中键入“-”,便可创建一条分隔线。此外,在每个菜单项的前面有一个小方块按钮,当鼠标移动到它的上面时形状会变成上下双箭头的样子。这个按钮是标准的移动指示器,用鼠标上下拖动它可以改变当前菜单项在菜单列表中的位置。,http:/V,VisualFoxPro程序设计,8.2.1菜单设计器,(2)结果该列用于指定激活菜单项时的动作,有以下4个选项:子菜单:如果用户所定义的当前菜单项还有子菜单的话应选择这一项。当选中该项后,在其右侧将出现一“创建”按钮,单击“创建”按钮后将进入新的一屏来设计子菜单。命令:如果当前菜单项的功能是执行某种动作的话应选择这一项。当选中该项后,在其右侧出现一文本框,在这个文本框中输入要执行的命令。这个选项仅对应于执行一条命令或调用其他程序的情况。如果所要执行的动作需多条命令完成,而又无相应的程序可用,那么在这里应该选择“过程”。主菜单名/菜单项#:主菜单名项出现在定义主菜单时,菜单项#出现在定义子菜单项时。当选中这一项时,在其右侧出现一文本框,用户可在文本框输入一个名字。选择这一项的目的主要是为了在程序中引用它。例如,利用它来设计动态菜单。如果用户不选择这一项,系统也会为各个主菜单和子菜单指定一个名称的,只是用户不知道而已。过程:用于定义一个与菜单相关联的过程,当用户选择了该菜单项后将执行这个过程。如果选择了这项,在其右侧将出现一“创建”按钮,按下该按钮将调出编辑窗口供输入过程代码。,http:/V,VisualFoxPro程序设计,8.2.1菜单设计器,(3)选项单击该按钮将弹出“提示选项”对话框,如图8-6所示。通过提示选项对话框用户可以设置菜单中的各菜单项的属性。比如定义菜单项的快捷键,控制如何禁止或允许使用菜单项,选中的菜单项时在系统状态条上是否显示对菜单项的说明信息,指定菜单项的名字以及在编辑OLE对象期间控制菜单项的位置等。该对话框主要有以下选项:,图8-6“提示选项”对话框,http:/V,VisualFoxPro程序设计,8.2.1菜单设计器,“快捷方式”选项区域:该区用于指定菜单或菜单项的快捷键。其中“键标签”文本框用于显示键组合。设置快捷键的方法是:将光标置于“键标签”文本框中,然后在键盘上按下快捷键,文本框中便会自动显示该快捷键名称。例如按下Crtl+R键,文本框中就出现Crtl+R键。“键说明”用于显示需要出现在菜单项旁边的文本,用作对快捷键的说明,文本框中的内容通常与用户设置的快捷键名称相同。“位置”选项区域:在该区域可指定用户在应用程序中编辑一个OLE对象时菜单项的位置。有“无”、“左”“中”“右”多个选项。“跳过”编辑框:设置一个表达式作为允许或禁止菜单项的条件。当菜单激活时,若表为真,则菜单项以灰色显示,表示当前不可用。“信息”编辑框:定义菜单项的说明信息。当选中了该菜单项后,这些信息将出现在VFP的系统状态条上。“主菜单名/菜单项#”编辑框:指定主菜单项的内部名称或子菜单项的序号。默认情况下,各菜单项无固定的名称,系统在生成菜单时将给出一个随机的名称或序号。“备注”编辑框:在这里输入对菜单项的注释。不过这里的注释不会影响到生成的菜单程序代码,在运行菜单程序时VFP将忽略所有的注释。,http:/V,VisualFoxPro程序设计,8.2.1菜单设计器,(4)“菜单级”下拉列表这个弹出列表显示当前所处的菜单级别。当菜单的层次较多时利用这一项可知道当前的位置。从子菜单返回上面任意一级菜单也要使用这一项。(5)“预览”按钮使用这个按钮可以预览当前定义的菜单,该菜单出现在原来系统菜单的地方。可在所显示的菜单中进行选择,检查菜单的层次关系及提示等是否正确,但是这种选择不会执行各菜单相应动作。(6)“插入”单击该按钮可以在当前菜单的前面插入一新的菜单项。(7)“插入栏”按钮进行菜单设计器界面后,该按钮被激活,用于插入一个VFP系统菜单项。单击此按钮,打开“插入系统菜单条”对话框,其中列出了各种VFP系统菜单命令。(8)“删除“按钮删除当前的菜单项。,http:/V,VisualFoxPro程序设计,8.2.1菜单设计器,要提醒用户注意的是,在菜单设计器环境下,系统的“显示”菜单中增加了与菜单有关的两个选项。(1)常规选项选择该菜单项将打开“常规选项”对话框,如图8-8所示。该对话框用于为整个菜单系统指定代码。它主要由“过程”、“编辑”、“位置”、“菜单代码”和“顶层表单”组成。(2)菜单项当用户选择“显示”菜单中的“菜单选项”命令时,将出现如图8-9所示“菜单选项”对话框。该对话框用于为菜单栏或各子菜单输入代码,它包括“名称”标签、“过程”编辑框和“编辑”按钮。,图8-8“常规选项”对话框,图8-9“菜单选项”对话框,http:/V,VisualFoxPro程序设计,8.2.2定义菜单,本节将通过一个具体的实例说明自定义菜单的方法和过程。【例8-4】为学生成绩管理系统设计一个菜单系统。主菜单包含有“数据维护”、“数据查询”、“报表打印”、“系统帮助”和“退出”5个菜单项,且各菜单项分别带有下拉子菜单。,表8-1菜单项的设置,http:/V,VisualFoxPro程序设计,8.2.2定义菜单,操作步骤:1规划菜单系统菜单项的设置如表8-1所示。2单击“文件”菜单下的“新建”按钮,在弹出来的对话框中选中“菜单”,然后选择“新建文件”,打开菜单设计器。定义主菜单,如图8-10所示。,图8-10定义主菜单,http:/V,VisualFoxPro程序设计,8.2.2定义菜单,3定义好主菜单后,定义各个子菜单。单击“数据维护”菜单项中的“创建”选项,进入子菜单定义界面,定义“数据维护”子菜单,如图8-11所示。,图8-11“数据维护”子菜单,http:/V,VisualFoxPro程序设计,8.2.2定义菜单,4从“菜单级”列表框中选择“菜单栏”选项,返回到主菜单定义界面,并按同样的方法分别定义另外“数据查询”和“报表打印”2个子菜单,如图8-12、图8-13所示。,图8-12“数据查询”子菜单,图8-13“报表打印”子菜单,http:/V,VisualFoxPro程序设计,8.2.2定义菜单,5在“系统帮助”菜单项的命令框中输入命令“doform帮助.scx”。当执行该菜单项时可以打开帮助表单。6在“退出”菜单项中,单击“退出”过程中的“编辑”选项,并在其中输入程序代码,如图8-14所示。,图8-14“退出”过程,http:/V,VisualFoxPro程序设计,8.2.2定义菜单,7单击“预览”按钮可预览设计好的菜单效果,如图8-15所示。8选择菜单“文件保存”,弹出“另存为”对话框,将菜单保存为“主菜单.MNX”,以便以后修改。系统除创建一个扩展名为MNX的菜单文件外,还会自动创建一个同名的菜单备注文件(MNT)。,图8-15“学生成绩管理”系统菜单,http:/V,VisualFoxPro程序设计,8.2.2定义菜单,9选择主菜单“菜单生成”,弹出“生成菜单”对话框,如图8-16所示。在“输出文件”文本框中显示出系统设定的路径、文件夹和文件名,文件名默认与菜单格式文件名相同。如果要放在别的文件夹或重新命名,可以直接在文本框中修改,也可以单击文本框右端按钮打开“另存为”对话框,指定新的路径。最后单击“生成”按钮,系统会自动生成菜单程序,菜单程序文件的扩展名为MPR。,图8-16生成菜单程序,http:/V,VisualFoxPro程序设计,8.2.2定义菜单,10选择主菜单“程序运行”,会弹出图8-17所示对话框,选中要运行的菜单程序“主菜单.MPR”,单击“运行”按钮,系统菜单将换成用户菜单,如图8-18所示。,图8-17“运行”对话框,图8-18用户菜单,11在命令窗口输入命令:setsysmenutodefault,可以结束用户菜单运行,重新显示系统主菜单。如果用户菜单设置了“退出”菜单,也可以单击“退出”来结束用户菜单的运行。,http:/V,VisualFoxPro程序设计,8.2.3为顶层表单添加菜单,一般情况下,使用菜单设计器设计的菜单,运行在VisualFoxPro的图文框中,也就是说,用户菜单不是在窗口的顶层,而是在第二层,因为VisualFoxPro标题一直被显示。如何去掉该标题,而换成用户指定的标题,可以通过顶层菜单设计来实现。其基本思想是:第1步:在菜单设计器设计好菜单,然后VFP系统菜单中选择“显示”下的“常规选项”菜单项,在“常规选项”对话框中选中“顶层表单”复选框,生成菜单程序。第2步:创建一个表单,该表单只设置标题为用户指定的标题,然后在Init方法中添加如下代码:DO菜单程序名WITHTHIS,.T.第3步:将表单的ShowWindow属性设置为2,使其成为“顶层表单”。,http:/V,VisualFoxPro程序设计,8.2.3为顶层表单添加菜单,【例8-5】将案例8-4设计的自定义菜单添加到顶层表单中。操作步骤:1打开“主菜单.MNX”,进行菜单设计器。2选择“显示”下的“常规选项”命令,在“常规选项”对话框中选中“顶层表单”复选框。3单击常用工具栏上的“保存“按钮,保存修改后的自定义菜单;然后选择“菜单”下的“生成”菜单项,重新生成新的菜单文件“主菜单.MPR”。4选择“文件”下的“新建”命令,在“新建”对话框中选择“表单”文件类型。单击“新建文件”按钮,打开表单设计器,表单属性设置如表8-2所示。,表8-2表单属性设置,http:/V,VisualFoxPro程序设计,8.2.3为顶层表单添加菜单,5为表单的Init事件过程添加如下代码:Do主菜单.MPRWITHTHIS,.T.6保存表单,并运行,运行效果如图8-19所示。,图8-19顶层表单中的菜单,http:/V,VisualFoxPro程序设计,8.3快捷菜单设计,当鼠标在窗口的某个对象上右击,将显示一快捷菜单,快捷菜单通常列出与相应对象有关的功能命令。与下拉菜单相比较,快捷菜单没有条形菜单栏,只有一个弹出式菜单。因此,对于快捷菜单仅需设计菜单项及其子菜单。利用菜单设计器可以创建快捷菜单,并可以将这些菜单附加在控件上。创建快捷菜单的具体步骤是:1、选择项目管理器中的“其他”选项卡,选定“菜单”选项,并单击“新建”按钮。在“新建菜单”对话框中单击“快捷菜单”按钮,打开“快捷菜单设计器”对话框。2、在“快捷菜单设计器”中添加菜单项,其过程与创建下拉菜单完全相同,即在“菜单名称”框中指定相应的菜单标题,在“结果”框中选择菜单激活后的动作并编写相应的命令或过程代码。单击“选项”栏中的按钮后,在“提示选项”对话框中设置快捷键等。3、预览快捷菜单。4、选择“文件”下的“另存为”命令,保存快捷菜单的定义文件(.MNX)。,http:/V,VisualFoxPro程序设计,8.3快捷菜单设计,5、选择“菜单”下的“生成”命令,生成相应的菜单程序文件(.MPR)。要使用创建的快捷菜单,可以在表单设计器环境下选定需要调用快捷菜单的对象,在该对象的RightClick事件过程中添加调用快捷菜单程序的代码:Do【例8-6】为表单的一个标签控件建立快捷菜单,其结构如图8-20所示。快捷菜单中包含了3个菜单项:字体、大小、颜色,它们分别带有下级子菜单,选择不同的的字体、大小、颜色时,标签标题随之发生相应的改变。,图8-20在表单中调用快捷菜单,http:/V,VisualFoxPro程序设计,8.3快捷菜单设计,操作步骤如下:1选择“文件”菜单下的“新建”命令,从“新建”对话框中选择“菜单”文件类型,在“新建菜单”对话框中单击“快捷菜单”按钮,打开“快捷菜单设计器”对话框。2定义快捷菜单各选项的名称,如表8-3所示。,图8-21“新建菜单”对话框,http:/V,VisualFoxPro程序设计,8.3快捷菜单设计,3在“菜单级”列表框中选择“快捷菜单”项,回到顶层菜单。选择“字体”菜单项,单击“编辑”按钮,重新进入“字体”子菜单,如图8-22所示。选择“显示”菜单下的“菜单选项”命令,打开“菜单选项”对话框,单击“编辑”按钮,再单击“确定”按钮,进入代码编辑窗口,为“字体”编写通用过程,如图8-23所示。编写完后关闭编辑窗口,返回菜单设计器。,图8-23“菜单选项”对话框,图8-22“字体”子菜单,http:/V,VisualFoxPro程序设计,8.3快捷菜单设计,子菜单“字体”通用过程代码:DOCASECASEBAR()=1Ft=“宋体”&选择的菜单项的序号CASEBAR()=2Ft=“楷体-GB2312”CASEBAR()=3Ft=“黑体”CASEBAR()=4Ft=“隶书”ENDCASE_VFP.ActiveForm.Label1.FontName=ft,4在“菜单级”列表框中选择“快捷菜单”项,回到顶层菜单。选择“大小”菜单项,单击“编辑”按钮进入“大小”子菜单,如图8-24,在各个子菜单的命令框中输入相应的代码,内容如表8-3所示。,图8-24“大小”子菜单,http:/V,VisualFoxPro程序设计,8.3快捷菜单设计,5在“菜单级”列表框中选择“快捷菜单”项,回到顶层菜单。选择“颜色”菜单项,单击“编辑
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高端别墅园林景观绿化养护管理服务合同
- 2025年绿色环保产业园区运营财务顾问外包服务协议
- 2025年高新技术产业园环保排放达标合作协议
- 2025年度婚姻终止协议书:情感补偿与财产权益分配标准
- 2025年跨区域绿色能源项目贷款协议补充条款
- 2025年城乡结合部环境整治与垃圾分类处理承包合同
- 2025年度电视剧演员权益保障及竞业限制综合合同
- 2025年社区儿童游乐场租赁及亲子娱乐服务合同
- 2025年餐饮企业食品安全风险预防与监管服务合同
- 2025电视机品牌授权及市场推广合作合同
- 阆中古镇管理办法细则
- 幼儿园教师安全管理培训
- 2025年湖南省长沙市中考历史试卷(含解析)
- 公共邮箱使用管理办法
- 农贸市场可行性研究报告
- 2025东风汽车集团有限公司全球校园招聘笔试参考题库附带答案详解
- 铝格栅墙面安装方案
- 浙江首考2025年1月普通高等学校招生全国统一考试政治试卷(含答案)
- 2025至2030肥厚型心肌病(HCM)治疗学行业发展趋势分析与未来投资战略咨询研究报告
- 水利工程监理单位安全生产责任制
- 2025届江苏苏州中考语文真题试卷【含答案】
评论
0/150
提交评论