资源描述
第十章,菜单和工具栏,10.1菜单设计,菜单为用户提供了直观地访问与熟悉系统和应用程序的重要手段,是用户界面的一个重要组成部分。用户使用应用系统,首先接触的部分就是菜单,所以菜单是用户评价应用系统是否方便,简捷的一个重要因素。,使用菜单与工具栏,设计出真正具有windows风格的应用程序.本章主要介绍VFP6.0菜单设计工具的使用;各类菜单设计的方法和步骤;VFP6.0工具栏和主要功能和使用方法。,运用菜单设计工具所设计的菜单,具有Windows菜单所具有的诸如下拉式分级处理、支持鼠标等若干属性。这样用户不仅对所设计的菜单操作使用起来得心应手,而且使菜单设计变得极其简单。,菜单系统设计的好坏反映了应用程序中功能模块组织的水平。应用程序的每一个部分和功能模块,在菜单系统中都有菜单组和菜单项与之相对应,因此,菜单是应用程序的组织者、功能模块的管理者,在很大程度上是应用系统成功的关键。,10.1.1规划与设计菜单系统,在菜单系统规划阶段,首先要明确设计应用系统的目标是什么,需要用什么样的菜单来组织和管理应用程序中的模块,这些菜单出现在系统界面的什么地方,菜单系统中哪些菜单项还需要有子菜单等。,10.1.2创建菜单,创建菜单的两种方式:菜单设计器方式命令方式两种菜单类型:一般菜单快捷菜单,实验21P113,新菜单对话框,菜单设计器窗口,选择菜单?子菜单,图10-3提示选项对话框,定义键盘快捷键,其他选项.,1、创建一般菜单,菜单设计器菜单名称:允许在菜单系统中指定菜单标题和菜单项结果:可以指定在选择菜单标题或菜单项时发生的动作创建:允许指定菜单标题或菜单项子菜单或过程,选项:显示“提示选项”对话框,可在其中定义键盘快捷键和其他菜单选择。菜单级:允许用户选择要处理的菜单或子菜单预览:显示正在创建的菜单插入:在“菜单设计器”窗口中插入一个新的菜单项删除:从“菜单设计器”中删除当前菜单项。,2、快速菜单,基于VFP6.0的主菜单栏,添加用户所需的菜单项所建立的菜单称为快速菜单。新建一个一般菜单时,“菜单设计器”中不包含任何自定义菜单项使用“快速菜单”把系统菜单作为默认的菜单系统.,图10-4“快速菜单设计器”窗口,“快速菜单设计器”与“菜单设计器”基本相同。主要不同处是,快速菜单设计器窗口中将VFP6.0系统主菜单项置于新建菜单中。因此,快速菜单的建立,实质上是用快捷方式将用户的菜单项加载到VFP6.0主菜单系统中。,3、快捷菜单设计器,在控件或对象上单击右键时,就会显示快捷方式菜单,能够快速展示当前控件或对象可用的功能。可用VFP6.0菜单设计器创建快捷方式菜单,并将这些菜单附加在控件中。创建快捷菜单方法类似于一般菜单创建过程。,4、菜单项分组,为增强菜单的可读性,用分隔线将菜单中,内容相关的菜单项分隔成组。例如,VFP6.0系统菜单的“文件”菜单中,用四条线分隔开五组。如图10-6所示。,图10-6系统菜单中的分隔线示例,10.1.3为菜单或菜单项指定任务,创建菜单系统时,必须为菜单项指定所需执行的任务,当使用菜单,而且选择某个菜单或菜单项时,将执行该菜单或菜单项所对应的任务。菜单或菜单项所要执行的任务,可以是一条命令语句,也可以是一个过程调用。如果同一组命令,可能在多个地方被使用,则应将这组命令编写成过程。,1、使用命令完成任务要执行任务,可以为菜单或菜单项指定一个命令,它可以是VFP6.0中任何有效的命令语句,包括对过程或程序的调用。被调用的程序和过程需要给出路径名。为菜单或菜单项指定命令的步骤,多文档界面(MDI)应用程序由单一的主窗口组成,且应用程序的窗口包含在主窗口中或浮动在主窗口顶端。单文档界面(SDI)应用程序由一个或多个独立窗口组成,这些窗口均在Windows桌面上单独显示。,回顾:什么是SDI?,10.1.4SDI菜单,创建SDI(单文档窗口界面)菜单将SDI菜单附加到表单中表单必须是SDI表单为表单的Init事件添加如下代码:DO菜单程序名WITHTHIS,.T.,选择它!,菜单名指定的菜单若为SDI菜单,则运行表单时,菜单栏加载在表单中。若菜单名指定的菜单为普通菜单,则运行表单时,菜单加载在表单之外。,10.1.启用和废止菜单项,用户可以按照对菜单系统使用的不同要求,对应于当前操作的不同状态,可以根据给定逻辑条件启用或废止菜单及菜单项。例如在WORD编辑工具剪贴命令在没有选择对象时是灰色的,即菜单项是不激活的;而当用户选择对象后,此菜单项被激活,变黑。,设置启用或废止菜单及菜单项的操作步骤:,10.1.6重新配置VFP系统菜单,VFP6.0系统允许使用SETSYSMENU命令在程序运行期间,启用或废止VFP主菜单栏,同时,还可以用SETSYSMENU命令,有选择地移去VFP主菜单系统中的菜单标题和菜单,并对其重新配置,也可以将其恢复。不带其他参数的SETSYSMENUTO命令关闭VFP主菜单栏。,SETSYSMENU命令SETSYSMENUON|OFF|AUTOMATIC|TO菜单列表|TO菜单标题列表|TODEFAULT|SAVE|NOSAVE关闭VFP主菜单栏SETSYSMENUTO恢复为默认设置SETSYSMENUTODEFAULT,10.2创建自定义工具栏,在应用程序中,用户经常重复执行某些任务。这时可以创建相应的自定义工具栏,以简化用户的操作,加速任务的执行。在应用系统中,若把一些经常需要的操作放在操作界面上的工具栏类中,可在多个表单集中方便地使用,不占用表单空间,且供多个表单调用。,10.2.1定义工具栏类,若要创建一个工具栏,可以通过定义一个自定义工具栏类来完成。创建用户自定义工具栏类,建立在VFP6.0提供的工具栏基类基础之上。,首先创建一个工具栏子类,而后向工具栏类添加对象,并为自定义工具栏定义属性、事件和方法程序。最后还可以将自定义工具栏添加到表单集中,具体操作过程:P216实验22P117,10.2.2用编程方式定义工具栏类,用户除了可以在“类设计器”中可视地定义自定义工具栏类以外,还可以使用编程方式动态的建立自定义工具栏。例如:P219见下页,例:定义一个工具栏,其中包含两个按钮,当单击按钮时将改变按钮标题的字体属性。当自定义工具栏对象创建时,各个按钮自动地以设计时加入工具栏的顺序显示,而忽略原定的Top和Left属性。当自定义工具栏的大小改变时,VFP6.0系统将自动调整每个按钮的显示方式。应用程序清单如下:,SETTALKOFFPUBLICTBDTBD=CREATEOBJ(”MTL”)TBD.SHOWDEFINECLASSMTLASTOOLBARADDOBJECTbtBOLDASCommandButtonADDOBJECTSep1ASSeparatorADDOBJECTbtTaASCommandButtonbtBOLD.HEIGTH=20btBOLD.WIDTH=50btBOLD.CAPTION=”粗体”btTa.HEIGTH=20btTa.WIDTH=50btTa.CAPTION=”斜体”btTa.FontBold=.F.LFET=0TOP=1WIDTH=30CAPTION=”字体工具栏”,工具栏标题属性,PROCEDUREActivateThis.btBold.FontBold=_Screen.FontBoldThis.btTa.FontItalic=_Screen.FontItalicENDPROCPROCbtBold.Click_Screen.FontBold=!_Screen.FontBoldThis.FontBold=_Screen.FontBoldENDPROCPROCbtTa.Click_Screen.FontItalic=!_Screen.FontItalicThis.FontItalic=_Screen.FontItalicENDPROCENDDEFINE,10.2.3为表单集添加工具栏类,VFP6.0系统允许在表单集中添加工具栏,使得在打开表单集中的各个表单时,工具栏也一起被打开。,VFP6.0不能直接在某个表单中添加工具栏。如果想把工具栏添加到某个表单中,则必须将此表单成为表单集的成员。然后再把工具栏添加入表单集。将工具栏添加到表单集的操作方法有多种。P220,本章小结,菜单的作用菜单的规划,设计与创建菜单的种类(一般,快捷)单文档界面窗口中的菜单(SDI菜单)创建自定义工具栏可视化方法与编程方法定义工具栏,
展开阅读全文