《第八章程序主界面精选文档.ppt》由会员分享,可在线阅读,更多相关《第八章程序主界面精选文档.ppt(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1本讲稿第一页,共四十四页本章结构第一节第一节 主界面的类型主界面的类型一、命令行式一、命令行式二、菜单式二、菜单式三、表单式三、表单式四、表单与菜单式四、表单与菜单式第二节第二节 创建菜单创建菜单一、菜单的设计原则一、菜单的设计原则二、创建菜单二、创建菜单第三节第三节 创建工具栏类创建工具栏类第四节第四节 创建主表单创建主表单一、创建表单一、创建表单二、添加代码二、添加代码 本讲稿第二页,共四十四页本章要点n主界面的类型,n创建主菜单,n创建工具栏,n创建主表单,n创建状态栏,n创建主程序。本讲稿第三页,共四十四页第一节 主界面的类型一、命令行式二、菜单式三、表单式四、表单与菜单式四、表单与
2、菜单式本讲稿第四页,共四十四页一、命令行式n所有的操作都是在相应菜单中输入命令来完成,而且整个程序实现也需要完全手工输入代码,将被淘汰将被淘汰。本讲稿第五页,共四十四页二、菜单式n隐藏VFP窗口中原有的菜单,然后执行程序的菜单,系统中所有的功能都由菜单来调用。本讲稿第六页,共四十四页三、表单式n进入程序后,在表单中放置几个按钮,通过这几个按钮来调用系统中提供的各种功能,或者直接进入功能界面。本讲稿第七页,共四十四页表单式示例:本讲稿第八页,共四十四页四、表单与菜单式n使用表单作为程序主界面,并在表单中加载菜单、工具栏以及状态栏。本讲稿第九页,共四十四页表单与菜单式示例:本讲稿第十页,共四十四页
3、第二节 创建菜单n在应用程序中,用户最先接触的就是应用程序中的菜单系统,如果把菜单设计的很好,那么只要根据菜单的组织形式和内容,用户就可以很好的理解和使用应用程序。n因此,Visual FoxPro提供了菜单设计器来帮助用户创建菜单,提高应用程序的质量。本讲稿第十一页,共四十四页一、菜单设计基础n 创建一个完整的菜单系统通常包括的操作步骤如下:(1)规划与设计系统,确定需要哪些菜单、子菜单、具体的菜单选项以及菜单的布局等。应应用用程程序序的的实实用用性性一一定定程程度度上上取取决决于于菜菜单单系系统统的的质质量量,花花费费一一定定时时间间规规划划菜菜单单,有有助助于于接接受受这这些些并并掌掌握
4、握菜菜单单,通通常常情情况况下下,我我们们在在设设计计菜菜单单的的时候可以参考如下准则:时候可以参考如下准则:本讲稿第十二页,共四十四页(补充)设计菜单的准则:按按照照用用户户所所要要执执行行的的任任务务组组织织系系统统,而而不不要要按按应应用用程程序序的层次组织系统;的层次组织系统;给每个菜单一个有意义的菜单标题;给每个菜单一个有意义的菜单标题;比较合理地组织菜单项的顺序;比较合理地组织菜单项的顺序;在菜单项的逻辑组之间放置分隔线;在菜单项的逻辑组之间放置分隔线;将菜单上菜单项的数目限制在一个屏幕之内;将菜单上菜单项的数目限制在一个屏幕之内;为菜单和菜单项设置访问键和键盘快捷键;为菜单和菜单
5、项设置访问键和键盘快捷键;使用能够准确描述菜单项的文字。使用能够准确描述菜单项的文字。本讲稿第十三页,共四十四页(2)使使用用菜菜单单设设计计器器定定义义菜菜单单标标题题、菜菜单单项和子菜单;项和子菜单;(3)按按实实际际要要求求为为菜菜单单系系统统指指定定任任务务。例例如如,显示表单或程序等;显示表单或程序等;(4)生生成成菜菜单单程程序序。VFP用用.MNX为为扩扩展展名名保保存存菜菜单单文文件件。该该文文件件是是一一张张表表,存存储储与与菜菜单单系系统有关的所有信息;统有关的所有信息;(5)运行生成的程序,以测试菜单系统。)运行生成的程序,以测试菜单系统。本讲稿第十四页,共四十四页二、菜
6、单的基本概念n 应用程序中常用菜单有应用程序中常用菜单有1、普通菜单、普通菜单2、快捷菜单(又称为弹出式菜单)、快捷菜单(又称为弹出式菜单)n 区别:区别:1、普通菜单都随应用的程序一起运行,即应用的主窗口打开,菜普通菜单都随应用的程序一起运行,即应用的主窗口打开,菜单也就显示在窗口的菜单栏中,用于组织和操控整个应用系统单也就显示在窗口的菜单栏中,用于组织和操控整个应用系统的各个功能模块,直至系统关闭;的各个功能模块,直至系统关闭;2、这两种菜单在菜单设计器中设计的方法是相同的、这两种菜单在菜单设计器中设计的方法是相同的,不同,不同之处在于快捷菜单一般是通过单击鼠标右键来激活,而下之处在于快捷
7、菜单一般是通过单击鼠标右键来激活,而下拉菜单始终会出现在窗口上方。拉菜单始终会出现在窗口上方。本讲稿第十五页,共四十四页1 菜单系统 菜单系统菜单系统是由菜单栏、菜单标题、菜单和菜单项组成。Visual FoxPro菜单系统示意图:菜单栏热键菜单标题菜单选项快捷键分组线本讲稿第十六页,共四十四页菜菜单单栏栏上上包包含含若若干干个个可可供供选选择择的的项项目目,也也就就是是用用于于放放置置多个菜单标题的。多个菜单标题的。菜菜单单标标题题是是每每个个菜菜单单的的名名称称,单单击击菜菜单单标标题题,可可以以打打开开一个对应的菜单。一个对应的菜单。菜单选项菜单选项是包含命令、过程和子菜单的列表。是包含
8、命令、过程和子菜单的列表。菜菜单单快快捷捷键键是是在在菜菜单单尚尚未未打打开开的的情情况况下下,可可以以用用菜菜单单快捷键来直接选取菜单选项。快捷键来直接选取菜单选项。菜菜单单热热键键是是在在菜菜单单项项所所在在的的菜菜单单被被激激活活的的情情况况下下能能激激活对应的菜单项。活对应的菜单项。本讲稿第十七页,共四十四页三、打开菜单设计器窗口 1通过新建菜单打开菜单设计器 选择系统“文件”菜单中的“新建”命令,在“新建”对话框中选择“菜单”文件类型,单击“新建文件”按钮,弹出“新建菜单”对话框,选择相应按钮。本讲稿第十八页,共四十四页2 使用命令建立或打开菜单设计器使用命令建立或打开菜单设计器 格
9、式:格式:MODIFY MENU 文件名文件名 功功能能:打打开开菜菜单单设设计计器器,从从中中可可以以修改或创建菜单系统。修改或创建菜单系统。3 通过打开已有菜单打开菜单设计器通过打开已有菜单打开菜单设计器 执执行行菜菜单单“文文件件”“打打开开”命命令令,在在“打打开开”对对话话框框中中选选择择“菜菜单单”,在在文文件件列列表表框框中中选选择择某某个个菜菜单单文文件件,单单击击“确定确定”按钮,即可打开菜单设计器。按钮,即可打开菜单设计器。本讲稿第十九页,共四十四页三、设计菜单 打开菜单设计器窗口后,可以在菜单上设置菜打开菜单设计器窗口后,可以在菜单上设置菜单项,每个菜单项都表示了一个希望
10、执行的命令或单项,每个菜单项都表示了一个希望执行的命令或过程,菜单项也可以包含子菜单,用以提供其它菜过程,菜单项也可以包含子菜单,用以提供其它菜单项。单项。1、菜单设计器窗口本讲稿第二十页,共四十四页1)“菜单名称菜单名称”列列 用来输入菜单项的名称,用来输入菜单项的名称,如果需要给菜单项定义热键,只需在文本中如果需要给菜单项定义热键,只需在文本中输入符号输入符号,后面所跟的第一个字符即为热键,后面所跟的第一个字符即为热键,如果需要对菜单项进行分组,只需在该文本中如果需要对菜单项进行分组,只需在该文本中输输入符号入符号-,就会在相应的位置产生一条分隔线。,就会在相应的位置产生一条分隔线。本讲稿
11、第二十一页,共四十四页 2)“结果结果”列列 其下拉列表框用于定义菜单项的性质,其中又分为其下拉列表框用于定义菜单项的性质,其中又分为“命令命令”、“过程过程”、“子菜单子菜单”、“填充名称填充名称”四个选项。四个选项。命命令令:如如果果当当前前菜菜单单项项的的功功能能是是执执行行一一条条命命令令语语句句,则则应应选选择择该该选选项项。当当选选中中该该选选项项后后,在在其其右右侧侧出出现现一一个个文文本本框框,可可在在其其中输入要执行的命令。中输入要执行的命令。子子菜菜单单:如如果果当当前前菜菜单单项项还还有有子子菜菜单单,则则应应选选择择该该选选项项。当当选选中中该该选选项项后后,在在其其右
12、右侧侧将将出出现现一一个个“创创建建”按按钮钮,单单击击该该按按钮钮,将将进进入入子子菜菜单单设设计计窗窗口口以以设设计计子子菜菜单单(菜菜单单的的级级别别可可从从设设计计器器窗窗口口右右侧侧的的“菜单级菜单级”下拉框中看出)。下拉框中看出)。过过程程:如如果果当当前前菜菜单单项项的的功功能能是是执执行行一一组组命命令令,则则应应选选择择该该选选项项。当当选选中中该该选选项项后后,在在其其右右侧侧将将出出现现一一个个“创创建建”按按钮钮,单击该按钮,可进入过程代码编辑窗口。单击该按钮,可进入过程代码编辑窗口。填填充充名名称称:表表示示当当前前菜菜单单项项为为系系统统提提供供的的菜菜单单项项。选
13、选择择该该项项后后,右侧出现一个文本框,在其中可输入系统菜单的命令。右侧出现一个文本框,在其中可输入系统菜单的命令。本讲稿第二十二页,共四十四页3)“选项选项”列列 选项列含有一个无符号按钮,单击会弹出选项列含有一个无符号按钮,单击会弹出“提示选项提示选项”对话框,以便定义菜单项的附属属性。对话框,以便定义菜单项的附属属性。4)菜单级)菜单级 其下拉列表框用于在主菜单(菜单栏)、子菜单间相互选择。其下拉列表框用于在主菜单(菜单栏)、子菜单间相互选择。5)插入按钮)插入按钮 用于在当前菜单项行之前插入一个新菜单行。用于在当前菜单项行之前插入一个新菜单行。6)插入栏按钮)插入栏按钮 用于在当前菜单
14、项行之前插入一个系统已经定义好的菜单项。用于在当前菜单项行之前插入一个系统已经定义好的菜单项。7)删除按钮)删除按钮 用于删除当前的菜单行。用于删除当前的菜单行。8)预览按钮)预览按钮 用于提供菜单的模拟显示。用于提供菜单的模拟显示。本讲稿第二十三页,共四十四页2 “显示”菜单的命令 打开菜单设计器后,VFP的“显示”菜单中出现两个选项:“常规选项”和“菜单选项”。本讲稿第二十四页,共四十四页1)常规选项 “常规选项常规选项”包括包括 (1)“过过程程”编编辑辑框框,在在这这可可以以为为系系统统创创建建一一个个默默认认过程,它将应用于整个菜单系统。过程,它将应用于整个菜单系统。比比如如:应应用
15、用程程序序作作为为试试用用版版使使用用时时,可可能能有有一一些些菜菜单单项项功功能未提供,这时可以创建如下过程。能未提供,这时可以创建如下过程。=messagebox(“对对不不起起,此此版版本本没没有有安安装装该该项项功功能能!”,64,“提示提示”)(2)“位置位置”选项组选项组 (3)“菜单代码菜单代码”选项组选项组本讲稿第二十五页,共四十四页2)菜单选项)菜单选项 菜菜单单选选项项供供用用户户为为含含有有子子菜菜单单的的菜菜单单指指定定公共过程。公共过程。本讲稿第二十六页,共四十四页三、运行菜单 菜菜单单设设计计完完成成后后,需需要要作作为为菜菜单单定定义义保保存存在在扩扩展展名名为为
16、.MNX的的文文件件和和扩扩展展为为.MNT的的菜菜单单定定义义的的备备注注文文件件中中。当当菜菜单单修修改改结结束束、菜菜单单设设计计器器窗窗口口尚尚未未关关闭时,可选用以下闭时,可选用以下4种方法之一来保存菜单定义。种方法之一来保存菜单定义。1 保存菜单定义本讲稿第二十七页,共四十四页(1)单单击击菜菜单单设设计计器器窗窗口口的的“关关闭闭”按按钮钮,系系统统会会询询问问“要要将将所所做做的的更更改改保保存存到到菜菜单单设设计计器器中中吗吗?”,若若单单击击“是是”按按钮钮,菜菜单单定定义义即即被被保保存存,且且菜菜单单设设计计器器窗窗口被关闭。口被关闭。(2)按按Ctrl+W组组合合键键
17、,此此时时菜菜单单定定义义被被保保存存,且且菜菜单单设设计器窗口被关闭。计器窗口被关闭。(3)选选择择系系统统“文文件件”菜菜单单中中的的“保保存存”命命令令,系系统统保存当前的菜单定义,菜单设计器窗口不关闭。保存当前的菜单定义,菜单设计器窗口不关闭。(4)如如果果没没有有保保存存过过菜菜单单定定义义,在在生生成成菜菜单单程程序序时时系系统统会会提提示示“要要将将所所做做更更改改保保存存到到菜菜单单设设计计器器中中吗?吗?”,此时单击,此时单击“是是”按钮,即可保存。按钮,即可保存。本讲稿第二十八页,共四十四页2 生成菜单程序 扩扩展展名名为为.MNX的的菜菜单单文文件件不不能能直直接接运运行
18、行,要要想想运运行行菜菜单单,必必须须先先选选择择系系统统“菜菜单单”中中的的“生生成成”命命令令,生生成成扩扩展展名名为为.MPR的菜单程序文件。的菜单程序文件。本讲稿第二十九页,共四十四页 生成菜单程序的操作步骤如下:生成菜单程序的操作步骤如下:(1)从从系系统统的的“菜菜单单”菜菜单单中中,选选择择“生生成成”命令,打开命令,打开“生成菜单生成菜单”对话框。对话框。(2)在在“生生成成菜菜单单”对对话话框框的的“输输出出文文件件”文文本本框框中中,输输入入生生成成的的菜菜单单程程序序的的名名称称,单击相应按钮进行输入。单击相应按钮进行输入。(3)单单击击“生生成成”按按钮钮,就就会会生生
19、成成扩扩展展名名为为.MPR的菜单程序文件。的菜单程序文件。【对对于于生生成成的的菜菜单单程程序序(.MPR文文件件)可可以以通通过过Modify Command命命令令打打开开该该文文件件并并进进行行修修改改,但但将将丢丢失失使使用用菜菜单单设设计计器器对对菜菜单单所所做做的的修修改改。】本讲稿第三十页,共四十四页n设置好菜单的层次结构以及菜单属性后,需要将菜单设置好菜单的层次结构以及菜单属性后,需要将菜单加载到表单中。其步骤为:加载到表单中。其步骤为:在菜单设计器中选择菜单在菜单设计器中选择菜单“显示显示”“常规选项常规选项”,在,在“常规选项常规选项”对话框中选中对话框中选中“顶层表单顶
20、层表单”复选框,单击复选框,单击“确定确定”按钮关闭该对按钮关闭该对话框;话框;在要加载菜单文件的表单的在要加载菜单文件的表单的“Init”事件代码中加入如下事件代码中加入如下代码,其中代码,其中“MainMenu.mpr”为生成的菜单可执行文件。为生成的菜单可执行文件。DO MainMenu.mpr WITH THISn【注意】【注意】要加载菜单的表单的要加载菜单的表单的“ShowWindow”属性值属性值为为“2-作为顶层表单作为顶层表单”。即要求加载菜单的表单为顶。即要求加载菜单的表单为顶层表单,为其他表单的父表单。层表单,为其他表单的父表单。本讲稿第三十一页,共四十四页3 运行菜单程序
21、(1)使用使用do命令命令 格式:格式:do 说明:说明:必须指定菜单程序的必须指定菜单程序的扩展名为扩展名为.MPR。运运行行菜菜单单程程序序时时,VFP会会自自动动对对新新建建或或修修改改后后的的.MPR文文件件进进行行编编译译并并产产生生目目标标程程序序.MNX。如如果果有有主主文文件件名名相相同同的的.MPR和和.MNX两个程序,总是运行后者。两个程序,总是运行后者。(2)使用系统菜单 选择系统“程序”菜单中的“运行”命令,在“运行”对话框中选择对应的扩展名为.MPR的菜单程序,单击“运行”按钮即可运行。本讲稿第三十二页,共四十四页4 创建快捷菜单 在VFP6或者在Windows中,选
22、定某个控件或对象后单击右键时,就会显示快捷菜单,可以快速展示对当前对象进行操作的各种可用的功能。正是因为这种菜单的方便快捷,它才被称为快捷菜单。可用VFP创建快捷菜单,并将这些菜单附加在控件中。本讲稿第三十三页,共四十四页 建立快捷菜单的操作步骤如下建立快捷菜单的操作步骤如下:(1)打打开开快快捷捷菜菜单单设设计计器器窗窗口口。选选择择系系统统“文文件件”菜菜单单中中的的“新新建建”命命令令,在在“新新建建”对对话话框框中中选选择择“菜菜单单”文文件件类类型型,单单击击“新新建建文文件件”按按钮钮,弹弹出出“新新建建菜菜单单”对对话话框框,单单击击“快快捷捷菜菜单单”按按钮钮,将将弹弹出出快快
23、捷捷菜菜单单设设计计器器用用于于设设计计快快捷捷菜菜单。单。本讲稿第三十四页,共四十四页 (2)插插入入系系统统菜菜单单栏栏。在在快快捷捷菜菜单单设设计计器器窗窗口口中中单单击击“插插入入栏栏”按按钮钮。弹弹出出“插插入入系系统统菜菜单单栏栏”对对话话框框,选选择择相相应应选选项项插插入入,最最后后关关闭该对话框。闭该对话框。本讲稿第三十五页,共四十四页 (3)生成菜单程序。选择系统)生成菜单程序。选择系统“菜单菜单”菜单中的菜单中的“生成生成”命令,弹出插入菜单栏信息提示对话框,单命令,弹出插入菜单栏信息提示对话框,单击击“是是”按钮,然后在按钮,然后在“保存保存”对话框中输入文件名,对话框
24、中输入文件名,保存。接着系统弹出保存。接着系统弹出“生成菜单生成菜单”对话框,单击对话框,单击“生生成成”,生成菜单。,生成菜单。(4)运行快捷菜单。)运行快捷菜单。本讲稿第三十六页,共四十四页第三节 创建工具栏类n在VFP中提供了一个“Toolbar”类来供开发人员创建工具栏,n在VFP创建工具栏可以以创建“Toolbar”类的子类的方式来完成。本讲稿第三十七页,共四十四页第四节 创建主表单一、创建表单1、添加状态栏控件 即“Microsoft statusbar control”本讲稿第三十八页,共四十四页本讲稿第三十九页,共四十四页本讲稿第四十页,共四十四页Style 属性可能取值及意义
25、说明属性属性说明说明0-sbrtext状态栏的栏显示文本状态栏的栏显示文本1-sbrcaps状态栏的栏显示状态栏的栏显示caps lock键的状态,如果按下,以黑色粗体显示,否则以灰色显示键的状态,如果按下,以黑色粗体显示,否则以灰色显示2-sbrnum状态栏的栏显示状态栏的栏显示num lock键的状态,如果按下,以黑色粗体显示,否则以灰色显示键的状态,如果按下,以黑色粗体显示,否则以灰色显示3-sbrinsert状态栏的栏显示状态栏的栏显示insert键是否被按下,如果按下,以黑色粗体显示,否则以灰色显示键是否被按下,如果按下,以黑色粗体显示,否则以灰色显示4-sbrscrl状态栏的栏显示
26、状态栏的栏显示scroll lock键的状态,如果按下,以黑色粗体显示,否则以灰色显示键的状态,如果按下,以黑色粗体显示,否则以灰色显示5-sbrtime状态栏的栏显示以系统格式显示当前系统时间状态栏的栏显示以系统格式显示当前系统时间6-sbrdate状态栏的栏显示以系统格式显示当前系统日期状态栏的栏显示以系统格式显示当前系统日期7-sbrkana状态栏的栏显示状态栏的栏显示kana lock键的状态,如果按下,以黑色粗体显示,否则以灰色显示键的状态,如果按下,以黑色粗体显示,否则以灰色显示(仅在日文操作系统中有效)(仅在日文操作系统中有效)本讲稿第四十一页,共四十四页n由于工具栏本质也是一种
27、表单工具栏本质也是一种表单,所以要在主菜单中显示工具栏,需要更大的容器来容纳,所以需要创建表单集需要创建表单集以便添加工具栏,创建表单的方法是在“表单设计器”中选择菜单“表单”,然后点击“创建表单集”即可。本讲稿第四十二页,共四十四页二、添加代码n主表单中的代码主要分为两类:1、加载菜单和在状态栏中显示动态信息,这一部分代码在主表单的“Init”事件中完成;2、在表单中创建工具栏类的对象,以便在主菜单中显示工具栏,这部分代码在主表单所属的表单集中的“Init”和“Activate”事件中完成。本讲稿第四十三页,共四十四页使用代码创建对象步骤n首先需要使用“SET CLASSLIB”命令打开可视类库,n然后使用表单或表单集的“AddObject”方法创建对象。本讲稿第四十四页,共四十四页