1 / 20

第九章 菜单与工具栏的设计与应用

第九章 菜单与工具栏的设计与应用. 教学内容: 一、 VFP 菜单系统结构 二、下拉式菜单的设计与使用 三、快捷菜单的设计与使用 四、工具栏的建立和应用 教学重点: 菜单设计的具体操作 教学难点: 菜单设计的具体操作. 一、 VFP 菜单系统结构. 1 、菜单的常见功能. 一、 VFP 菜单系统结构. 2 、下拉式菜单的结构. 图 9-3 菜单实例. 图 9-4 建立菜单主选项. 二、下拉式菜单的设计与使用. 1 、菜单设计的基本过程. 例 1 :建立如图所示菜单的主选项,并保存为文件 cd1.mnx 。. 图 9-2 菜单设计器窗口.

cyma
Download Presentation

第九章 菜单与工具栏的设计与应用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第九章菜单与工具栏的设计与应用 教学内容: 一、VFP菜单系统结构 二、下拉式菜单的设计与使用 三、快捷菜单的设计与使用 四、工具栏的建立和应用 教学重点:菜单设计的具体操作 教学难点:菜单设计的具体操作

  2. 一、VFP菜单系统结构 1、菜单的常见功能

  3. 一、VFP菜单系统结构 2、下拉式菜单的结构

  4. 图9-3 菜单实例 图9-4 建立菜单主选项 二、下拉式菜单的设计与使用 1、菜单设计的基本过程 例1:建立如图所示菜单的主选项,并保存为文件cd1.mnx。

  5. 图9-2 菜单设计器窗口 二、下拉式菜单的设计与使用 (1)调用菜单设计器 菜单法:使用“新建”工具或菜单 命令法:CREATE MENU 菜单文件名 (2)菜单设计器的使用: “菜单名称”:指定显示在菜单中的选项名称。当有多个选项时,“菜单名称”列左边的双向箭头允许用鼠标拖动调整顺序。 “结果”:指定在选择菜单项时发生的动作类型,可以是命令、填充名称、子菜单和过程。 “选项”按钮:可以进入“提示选项”对话框,在此可定义键盘快捷键和其他菜单选项。 “菜单级”下拉列表:用于选择处理的菜单或子菜单。 “插入”:用于在菜单设计器窗口中插入新选项。“插入栏”仅在编辑子菜单时有效,用于将一个系统菜单栏插入菜单中。 “预览”按钮:显示正在创建的菜单。

  6. 二、下拉式菜单的设计与使用 (2)菜单设计器的使用: 菜单名和热键设置 菜单名称: \<字母——热键,\- ——分隔线

  7. 二、下拉式菜单的设计与使用 (2)菜单设计器的使用: “结果”列:用于设定该菜单选项被选取时要执行的动作。系统预设的动作都是“子菜单”,可以用下拉列表选择其他动作。每个选项的含义如下: 1)命令:表示要执行一条VFP的命令。可以把要执行的命令输入右边的空白方框中。例如“退出”选项实现退出应用程序,返回VFP主窗口,选择“结果”为“命令”,在其后的编辑框中输入:SET SYSMENU TO DEFAULT,表示结束应用程序的菜单运行,显示VFP 的系统菜单。 2)填充名称:输入一个系统定义的或系统使用的菜单名。在子菜单中该项显示为Bar#。 3)子菜单:表示此选项下还有下一层菜单。选取时,右方出现“创建”按钮,单击后出现另一层的相同的设计界面,可设计下一层的菜单,如此能一层一层地建立出分层的菜单选项。 4)过程:与“命令”选项类似,不同的是这里可以输入许多条命令,当选取此选项时,这一串命令将会被顺序执行。

  8. 二、下拉式菜单的设计与使用 (2)菜单设计器的使用: 设定“选项” 在菜单设计器窗口中,当选中某一菜单项时,其右方的“选项”处会出现一个灰色的按钮,单击后弹出“提示选项”对话框。 (1)快捷方式 设定此菜单项的快捷键。例如,在编辑中经常使用的Ctrl+C为“复制”功能的快捷键。在提示选项中设置快捷键的方法:只需在将光标移到“键标签”框中并按下要使用的快捷键,VFP便会记录它们。 (2)跳过选项 此选项用来判断其右方的条件表达式的结果,若执行菜单时条件表达式结果为.T.,则此菜单项就会变为灰色字体而无法选取,表示此选项无效。要注意的是在预览中无法显示出此项功能,必须在执行菜单时才会执行条件的判断。 (3)信息 此处的文字将显示在窗口的状态栏上,作为选取该选项时的提示信息。例如,为“浏览”选项输入提示信息“浏览数据记录”,则选中该项时,状态栏显示结果如图9-7所示。 (4)主菜单名 在这里输入选项的名称,用来判断在程序中是否选择该选项。若是在子菜单选项,此选项变为“菜单项#”,可在其中设定此选项的编号,以便在程序中判断是否选取了它,设定的值必须为数字。 (5)备注:设定注解,用来作为解释。

  9. 图9-8 “生成菜单”对话框 二、下拉式菜单的设计与使用 (3) 存储并执行菜单 当菜单设计完成以后,必须先保存为菜单文件,VFP中菜单文件默认扩展名为.MNX,保存后才能执行此菜单。 保存菜单:“文件”→保存”。 运行菜单: 1)在项目管理器中选择“其他”→单击右边的“运行”按钮。 2)在菜单设计器中打开菜单,并选取命令“菜单/生成”选项,单击“生成”按钮会生成扩展名为.MPR的菜单程序文件,在命令窗口中输入命令: DO <菜单文件名>.MPR 由于没有为菜单选项设定程序代码,运行菜单时选取菜单选项没有任何动作。

  10. 二、下拉式菜单的设计与使用 (4)菜单选项代码 此处列出设置菜单选项代码时的常用命令,以供参考。 •调用表单:DO FORM <表单文件名> •调用程序:DO <程序文件名> •调用查询:DO <查询文件名>.qpr •打印报表:REPORT FORM <报表文件名>TOPRINT •预览报表:REPORT FORM <报表文件名>PREVIEW •恢复系统菜单:SET SYSMENUTODEFAULT •退出VFP:QUIT

  11. 练习 1. 使用______可以将自定义工具栏添加到表单集中。 A.表单控件工具栏 √ B.报表设计器 C.项目管理器 D.菜单设计器 2. 设计一个菜单选项的功能为退出Visual FoxPro,则应设置其结果为命令,并在其后输入命令______。 A.EXIT B.QUIT C.SET SYSMENT TO DEFAULT D.THISFORM.RELEASE √ 3. 为菜单选项加入热键的方法是在菜单设计器中该选项的名称后加______。 A.该字母名称 B. \- √ C.\<字母 D.Ctrl+字母 4. 扩展名为mnx的文件是______。 A.备注文件 B.项目文件 C.表单文件 D.菜单文件 √ 5. 快捷菜单的调用代码通常设置与某个对象的______事件中。 A.Activate Event B.RightClick Event √ C.Init Event D.Destroy Event 6. 在“菜单设计器”中,“文件”菜单项的键盘访问键是F,在菜单名称中应该键入______。 A.文件F B.文件+F C.文件(\<F) √ D.F>文件

  12. 图9-15 “新建菜单”对话框 三、快捷菜单的设计与使用 快捷菜单是用户点击鼠标右键时弹出的菜单。快捷菜单设计好后必须生成菜单程序(扩展名为.mpr),然后设置在某个事件发生时调用它(一般是鼠标右击的事件)。 9.4.1 建立快捷菜单 “文件”→“新建”→“菜单” →“新建文件” →“快捷菜单” 9.4.2 调用快捷菜单 快捷菜单建立后,必须生成菜单程序( “菜单”→“生成” →单击“生成”按钮)然后就可以使用命令调用它。快捷菜单是在用户单击右键后出现的,因此快捷菜单的调用通常发生在某个对象的RightClick事件中。

  13. 三、快捷菜单的设计与使用 例1:为某表单的文本框设计快捷菜单,能实现对文本框内容的复制、剪切和粘贴。 1)新建一个快捷菜单(“文件”→“新建”→“菜单” →“新建文件” →“快捷菜单”),单击“插入栏”按钮,利用出现的“插入系统菜单栏”对话框,将系统菜单的复制、剪切和粘贴选项作为菜单选项插入。 2)将菜单保存为kjcd.mnx,并生成菜单程序文件kjcd.mpr。 3)在设计器中打开表单,选中需要弹出快捷菜单的文本框,设置其RightClick Event事件代码如下:Do kjcd.mpr 运行表单时,当在文本框中选中文本后右键单击时出现所设快捷菜单。

  14. 图9-19 新建类 四、工具栏的建立和应用 9.5.1 建立自定义工具栏 要建立自定义工具栏,可以从VFP的ToolBar类派生得到一个工具栏类,再利用表单设计器或程序方式向表单集或主窗口添加即可。 1.建立工具栏类 利用“文件/新建”→“类”选项,单击“新建”按钮建立一个新类;或在项目管理器中的“类”选项卡中建立一个新类。 在弹出的“新建类”对话框中设置类名,“派生于”选择Toolbar,并在“存储于”中指明该类存储于哪一个类文件中,如图9-19所示。设置完毕后单击“确定”按钮。

  15. 属性或方法名 说明 Caption 工具栏的标题 ControlBox 工具栏在运行时刻是否包含控制菜单框 Movable 在运行时刻用户是否可以移动工具栏 Name 工具栏的名称 ToolTipText 控件工具的提示文本 ShowTips 是否显示工具栏的提示文本 Sizeable 在运行时用户是否可以调整工具栏的大小 Dock 停放或移出工具栏 AfterDockEvent 工具栏停放后发生的动作 BeforeDockEvent 工具栏停放前发生的动作 四、工具栏的建立和应用 2.设计工具栏类 在打开的“类设计器”窗口中对myToolbar类进行设计,设计的方法与表单设计的方法类似:利用表单控件工具栏向其中加入命令按钮组或命令按钮对象,并定义其属性、编写按钮的Click 事件过程。 3.设置工具栏的属性及方法 在工具栏中添加了对象以后,可以设置工具栏的属性和方法。工具栏有28个属性,30个方法,表9-1说明了比较常用的属性和方法。

  16. 图9-20 包含工具栏的表单集 四、工具栏的建立和应用 4.将工具栏加到表单中 工具栏设计好以后,可将其放到表单集中。向表单集中添加工具栏有两种方法:一是利用表单设计器,另外可以利用程序代码。 (1)利用表单设计器 新建一个表单,在表单控件工具栏中单击“查看类”,在弹出的打开对话框中选择自定义工具栏的类文件,确定后可以看到表单控件工具中出现了刚才设计的类:myToolbar。使用添加控件的方法向表单中添加一个自定义工具栏对象。由于VFP只在表单集中添加工具栏,所以系统会出现提示信息:“要添加表单,需要一个表单集对象,创建一个吗?”选择“是”建立一个表单集。由此可见,工具栏是一类特殊的表单对象。 以上操作完成后,自定义工具栏就添加在表单集中了。保存并运行添加工具栏的表单集,自定义工具栏也随之运行,和VFP的工具栏一样,用户可以随意移动它的位置,表单的运行结果如图9-20所示。

  17. 四、工具栏的建立和应用 (2)利用程序代码 除了使用“表单设计器”以外,还可以使用程序代码在表单集中添加工具栏。方法是在表单集的Init 事件中使用如下命令: SET CLASSLIB TO工具栏类 THIS.ADDOBJECT('工具栏类库名','工具栏类名') THIS. .工具栏类库名.SHOW 9.5.2 向顶层表单中添加自定义工具栏 用普通的建立工具栏的方法给顶层表单添加工具栏,会发现工具栏不能正常显示。事实上,工具栏被顶层表单挡在后面了,即使你把顶层表单的SHOW WINDOW属性设置为“最上层表单”、把AlwaysOnTop属性设置为.T.也没用。这是因为工具栏是一种特殊的表单,而在VFP中除了应用程序对象_VFP和_SCREEN对象,没有其他任何表单的层级比顶层表单高。因此要给顶层表单程序添加工具栏,必须把工具栏做在顶层表单本身上。下面的例子说明了这种方法。

  18. 图9-21 设计自定义工具栏 图9-22 顶层表单中的自定义工具栏 四、工具栏的建立和应用 例9-5为顶层表单添加自定义工具栏。 操作步骤如下: 1)在类库MyVcx中建立一个工具栏类topToolBar, 将工具栏的ShowWindow属性设置为1—最上层表单, 如图9-21所示。 2)给顶层表单添加一个自定义属性formToolBar。 选择菜单“表单/新建属性”,出现“新建属性”对话框,在“名称”后输入属性名称:formToolbar。单击“添加”按钮,新的属性就添加到了表单属性对话框中。 3)在表单的Activate 事件中输入以下代码: THIS.formToolBar=NewObject("topToolBar","myVcx") THIS.formToolBar.show() THIS.formToolBar.dock(0) 保存并运行表单,结果如图9-22所示。

  19. 五、协调菜单与自定义工具栏 应用系统的菜单中通常包含了系统的大部分功能,如果某些菜单命令使用频繁,可创建自定义工具栏,包含那些频繁使用的菜单命令,这样用户在需要这些命令时只需简单地按动按钮就可以了。如果应用系统中既有菜单,又有工具栏,则需要使菜单命令和工具栏协调同步。例如,菜单项应执行与对应工具栏按钮相同的任务,另外,如果某个工具栏按钮禁用,则与它相应的菜单命令也应是灰色,不可选取。 要使菜单与工具栏相协调,需要做到: 1)无论用户使用工具栏按钮,还是使用与按钮相关联的菜单项,都执行同样的操作。 2)相关的工具栏按钮与菜单项具有相同的可用或不可用属性。 要达到以上目的,可遵循如下步骤: 1)通过定义工具栏类来创建工具栏,添加命令按钮,并将要执行的代码包括在对应于此命令按钮的Click 事件的方法程序中。 2)创建与之协调的菜单。在“菜单设计器”中,根据工具栏上的每个按钮创建对应的子菜单;设置子菜单项的“结果”为“命令”,并调用相关工具栏按钮的Click 事件对应的代码。 例如,如果工具栏按钮的名字为cmdA,表单文件名为myform,可以在子菜单项命令编辑框中添加如下代码: myform.toolbar.cmdA.Click

  20. 五、协调菜单与自定义工具栏 3)设置菜单与工具栏具有相同的禁用属性。单击菜单项的“选项”栏按钮,打开“提示选项”对话框,选择“跳过”。在“表达式生成器”中输入表达式,指出当工具栏命令按钮失效时,菜单应该为禁用状态。例如,如果工具栏按钮的名称为cmdA,可以在“跳过”框中输入如下代码: NOT myform.toolbar.cmdA.Enabled 按钮的状态可根据各个表单运行时所处的状态来确定,设置其Enabled属性为.T.(可用)或.F.(禁用)即可。 4)生成菜单程序。 5)把菜单添加到拥有工具栏的表单集中。若生成菜单的名字为mainmenu.mpr,则在表单集的初始化方法中添加如下代码: Do mainmenu.mpr with this 当用户打开菜单时,VFP计算“跳过”条件的值,如果相关的工具栏命令不可用,则菜单也不可用。当用户选择菜单项时,则执行相关工具栏命令的Click事件代码,保证了菜单与对应工具按钮执行相同的操作。

More Related