第10章MDI窗体和菜单_第1页
第10章MDI窗体和菜单_第2页
第10章MDI窗体和菜单_第3页
第10章MDI窗体和菜单_第4页
第10章MDI窗体和菜单_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第1010章章 MDIMDI窗体和菜单窗体和菜单在在Visual Basic中窗体可以分为单文档界面(中窗体可以分为单文档界面(SDI)和多)和多文档界面(文档界面(MDI)两大类。前面介绍的应用程序设计都是基)两大类。前面介绍的应用程序设计都是基于单文档界面的。菜单是用户界面最重要的元素之一,菜单于单文档界面的。菜单是用户界面最重要的元素之一,菜单使得用户界面更加友好、直观。本阐将介绍使得用户界面更加友好、直观。本阐将介绍MDI应用程序的应用程序的创建和应用以及菜单的创建和应用。创建和应用以及菜单的创建和应用。10.1 MDI10.1 MDI界面概述界面概述多文档界面(多文档界面(MDI)

2、允许创建在单个容器窗体中包含)允许创建在单个容器窗体中包含多个窗体的应用程序。多个窗体的应用程序。10.2 MDI10.2 MDI应用程序的创建和使用应用程序的创建和使用一个应用程序中只能有一个一个应用程序中只能有一个MDI窗体,如果工程中已窗体,如果工程中已经有一个经有一个MDI窗体,则该工程上的添加窗体,则该工程上的添加MDI窗体选项将无效窗体选项将无效。10.2.1 MDI10.2.1 MDI应用程序的创建应用程序的创建要创建要创建MDI应用程序,在创建了标准应用程序,在创建了标准EXE工程后,再工程后,再添加添加MDI窗体。要为工程添加窗体。要为工程添加MDI窗体,可以从窗体,可以从“

3、工程工程”|“添加添加MDI窗体窗体”命令直接添加,也可以通过在工具窗口的工命令直接添加,也可以通过在工具窗口的工程名上单击右键,在弹出的右键菜单上选择程名上单击右键,在弹出的右键菜单上选择“添加添加MDI窗体窗体”选项。选项。10.2.2 10.2.2 使用使用MDIMDI窗体及其子窗体窗体及其子窗体当当MDI应用程序在一次会话中要打开、保存和关闭几个应用程序在一次会话中要打开、保存和关闭几个子窗体时,应当做到引用活动窗体和保持关于子窗体的状态子窗体时,应当做到引用活动窗体和保持关于子窗体的状态信息。信息。一个一个MDI应用程序中可以有同一子窗体的多个实例,如应用程序中可以有同一子窗体的多个

4、实例,如果需要知道使用的是哪一个窗体,使用果需要知道使用的是哪一个窗体,使用MDI窗体的窗体的ActiveForm属性,该属性可以返回具有焦点的或者最后被激属性,该属性可以返回具有焦点的或者最后被激活的子窗体。活的子窗体。在在MDI应用程序中,加载子窗体时,其父窗体(应用程序中,加载子窗体时,其父窗体(MDI窗窗体)会自动加载并显示,但在加载体)会自动加载并显示,但在加载MDI窗体时,其子窗体并窗体时,其子窗体并不会自动加载。利用不会自动加载。利用AutoShowChildren属性可用来在属性可用来在MDI窗窗体加载时自动显示或自动隐藏子窗口,也可以在运行时通过体加载时自动显示或自动隐藏子窗

5、口,也可以在运行时通过Show方法来显示子窗口。在使用方法来显示子窗口。在使用Show方法显示子窗体时可方法显示子窗体时可以更新其标题、位置和菜单等操作。以更新其标题、位置和菜单等操作。10.2.3 MDI10.2.3 MDI窗体实例窗体实例本实例将演示在本实例将演示在MDI应用程序中如何创建子窗体,并应用程序中如何创建子窗体,并动态修改新创建的子窗体的标题以及一些其它的属性。动态修改新创建的子窗体的标题以及一些其它的属性。10.3 10.3 菜单菜单菜单是用户界面最重要的元素之一。在菜单是用户界面最重要的元素之一。在Windows环境环境下,通过窗体菜单来实现复杂的操作具有快捷、安全的明显下

6、,通过窗体菜单来实现复杂的操作具有快捷、安全的明显优势。如果一个比较大的应用程序的用户界面中没有菜单,优势。如果一个比较大的应用程序的用户界面中没有菜单,就会让使用者有无从下手的感觉。就会让使用者有无从下手的感觉。10.3.1 10.3.1 菜单概述菜单概述菜单的基本作用是提供人机对话界面,便于用户选择菜单的基本作用是提供人机对话界面,便于用户选择应用程序的各种功能,管理应用系统,控制各咱功能模块的应用程序的各种功能,管理应用系统,控制各咱功能模块的运行。菜单可以分为下拉式菜单和弹出式菜单两种基本类型运行。菜单可以分为下拉式菜单和弹出式菜单两种基本类型。关于菜单有以下几个基本概念是需要掌握的。

7、关于菜单有以下几个基本概念是需要掌握的。菜单栏:菜单栏:菜单标题:菜单标题: 菜单项:菜单项:快捷菜单:快捷菜单:菜单的状态:菜单的状态: 菜单项的访问键和快捷键:菜单项的访问键和快捷键: 10.3.2 10.3.2 菜单编辑器菜单编辑器在在Visual Basic中,菜单通过菜单编辑器来建立。用户中,菜单通过菜单编辑器来建立。用户可以把菜单项作为一个控件来处理,使用菜单编辑器来设计可以把菜单项作为一个控件来处理,使用菜单编辑器来设计菜单的过程就是对菜单项属性设置的过程。菜单的过程就是对菜单项属性设置的过程。10.3.3 10.3.3 用菜单编辑器创建菜单用菜单编辑器创建菜单利用菜单编辑器创建

8、菜单的详细步骤如下:利用菜单编辑器创建菜单的详细步骤如下:(1)选取要添加菜单栏的窗体。)选取要添加菜单栏的窗体。(2)选择)选择“工具工具”|“菜单编辑器菜单编辑器”命令,或者在标准命令,或者在标准工具栏中单击工具栏中单击“菜单编辑器菜单编辑器”按钮,显示菜单编辑器。按钮,显示菜单编辑器。(3)在)在“标题标题”文本框中,为第一个菜单标题键入在文本框中,为第一个菜单标题键入在菜单栏上显示的文本,即设置菜单控件的菜单栏上显示的文本,即设置菜单控件的Caption属性。菜属性。菜单标题文本会显示在菜单控件列表框中。单标题文本会显示在菜单控件列表框中。(4)在)在“名称名称”文本框中,输入将用来在

9、代码中引用文本框中,输入将用来在代码中引用该菜单控件的名字,即设置菜单控件的该菜单控件的名字,即设置菜单控件的Name属性。属性。(5)单击)单击“向左向左”或或“向右向右”按钮,可以改变该控件按钮,可以改变该控件的缩进级。单击的缩进级。单击“向右向右”按钮可以增加一级缩进,单击按钮可以增加一级缩进,单击“向向左左”按钮可以删除一级缩进。在菜单编辑器中,每一缩进级按钮可以删除一级缩进。在菜单编辑器中,每一缩进级都使用都使用4个点表示。个点表示。(6)单击)单击“下一个下一个”按钮就可以再建一个菜单控件。按钮就可以再建一个菜单控件。10.3.4 10.3.4 设置分隔线设置分隔线分隔线作为菜单项

10、间的一个水平行显示在菜单上。在菜分隔线作为菜单项间的一个水平行显示在菜单上。在菜单较多的菜单上,可以使用分隔线将各项划分成一些逻辑组单较多的菜单上,可以使用分隔线将各项划分成一些逻辑组。10.3.5 10.3.5 设置访问键和快捷键设置访问键和快捷键通过定义访问键和快捷键可以改进键盘对菜单命令的访通过定义访问键和快捷键可以改进键盘对菜单命令的访问。如果某一字符是该菜单项的访问键,则该字符的下方会问。如果某一字符是该菜单项的访问键,则该字符的下方会有一条下划线,用户只要同时按下有一条下划线,用户只要同时按下Alt键和该字符键,就可以键和该字符键,就可以激活该菜单。激活该菜单。10.3.6 10.

11、3.6 为菜单项编写事件代码为菜单项编写事件代码菜单项只有一个菜单项只有一个Click事件。除了分隔线、无效的或不事件。除了分隔线、无效的或不可见的菜单控件不能识别可见的菜单控件不能识别Click事件外,其它的菜单控件都事件外,其它的菜单控件都能识别能识别Click事件。事件。在菜单事件中编写代码和在其它控件的相在事件中编在菜单事件中编写代码和在其它控件的相在事件中编写代码是完全一样的。一旦菜单标题被选择,则其下拉菜单写代码是完全一样的。一旦菜单标题被选择,则其下拉菜单将自动显示。因此,一般情况下不对菜单标题的将自动显示。因此,一般情况下不对菜单标题的Click事件事件编写代码,除非客房有特殊

12、要求时,如每次显示下拉菜单时编写代码,除非客房有特殊要求时,如每次显示下拉菜单时要对某些菜单项进行操作。要对某些菜单项进行操作。10.3.7 10.3.7 运行时创建和修改菜单运行时创建和修改菜单用户在设计时创建的菜单也能动态响应运行是条件的用户在设计时创建的菜单也能动态响应运行是条件的改变。例如,在某些特定的操作未完成前,通过使某些菜单改变。例如,在某些特定的操作未完成前,通过使某些菜单项无效,以防止重复执行此操作。为了使用户更清楚的了解项无效,以防止重复执行此操作。为了使用户更清楚的了解在一组菜单项中某些菜单项被选中,可使用复选标志来指示在一组菜单项中某些菜单项被选中,可使用复选标志来指示

13、几个命令中的哪些被选中。为了适应当前程序运行的环境,几个命令中的哪些被选中。为了适应当前程序运行的环境,有时需要临时添加或删除一些菜单项。有时需要临时添加或删除一些菜单项。10.3.8 10.3.8 在菜单中添加文件列表在菜单中添加文件列表目前流行的许多目前流行的许多Windows应用程序都具有在文件菜单应用程序都具有在文件菜单下列出最近访问过的文件列表的功能,要实现这样的功能,下列出最近访问过的文件列表的功能,要实现这样的功能,只靠菜单编辑器是无法完成的,还必须通过程序代码来配合只靠菜单编辑器是无法完成的,还必须通过程序代码来配合控制。控制。首先必须创建一个菜单控件数组。菜单控件数组就是首先

14、必须创建一个菜单控件数组。菜单控件数组就是在同一菜单上共享相同名称和事件过程的菜单项目的集合。在同一菜单上共享相同名称和事件过程的菜单项目的集合。每个菜单控件数组元素都由唯一的索引值来标识,该值可在每个菜单控件数组元素都由唯一的索引值来标识,该值可在菜单编辑器的菜单编辑器的“索引索引”框中指定。当一个控件数组成员识别框中指定。当一个控件数组成员识别一个事件时,一个事件时,Visual Basic将其将其Index属性值作为一个附加的属性值作为一个附加的参数传递给事件过程。事件过程必须包含有验证参数传递给事件过程。事件过程必须包含有验证Index属性属性值的代码,由此来判断正在使用的是哪一个数组

15、成员。值的代码,由此来判断正在使用的是哪一个数组成员。10.3.9 10.3.9 弹出式菜单弹出式菜单弹出式菜单是独立于菜单栏而显示在窗体上的浮动菜单弹出式菜单是独立于菜单栏而显示在窗体上的浮动菜单,在,在Windows应用程序中,通常使用鼠标右键激活上下文菜应用程序中,通常使用鼠标右键激活上下文菜单。定义弹出式菜单和定义下拉式菜单的方法是一样的,任单。定义弹出式菜单和定义下拉式菜单的方法是一样的,任何一个含有一个或一个以上的菜单都可以作为弹出式菜单。何一个含有一个或一个以上的菜单都可以作为弹出式菜单。弹出式菜单的最高一级菜单项称为顶级菜单项。顶级菜弹出式菜单的最高一级菜单项称为顶级菜单项。顶

16、级菜单项的标题将不会在弹出式菜单中显示出来,但顶级菜单必单项的标题将不会在弹出式菜单中显示出来,但顶级菜单必须被定义。用户常常会想用一个快捷菜单来访问在菜单栏中须被定义。用户常常会想用一个快捷菜单来访问在菜单栏中不常用的选项,要创建一个不显示在菜单栏里的菜单,可以不常用的选项,要创建一个不显示在菜单栏里的菜单,可以设计时使顶级菜单项不可见,即取消设计时使顶级菜单项不可见,即取消“可见可见”复选框或在属复选框或在属性窗口中将性窗口中将Visible属性值设为属性值设为False。激活弹出式菜单使用。激活弹出式菜单使用PopupMenu方法。其语法格式如下:方法。其语法格式如下:对象名对象名.PopupMenu 菜单名菜单名,flags,x,y,boldcommand10.3.10 10.3.10 菜单实例菜单实例本实例将演示如何利用菜单编辑器创建下拉式菜单和弹本实例将演示如何利用菜单编辑器创建下拉式菜单和弹出式菜单。以及如何动态修改菜单的状态,以及菜单控件数出式菜单。以及如何动态修改菜单的状态,以及菜单控件数组的使用等。组的使用等。10.3.10 10.3.10 菜单实例菜单

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论