版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第1010章章 MDI MDI窗体和菜单窗体和菜单在在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 1
11、0.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方法。其语法格式如下:方法。其语法格式如下:对象名对象名.P
17、opupMenu 菜单名菜单名,flags,x,y,boldcommand10.3.10 10.3.10 菜单实例菜单实例本实例将演示如何利用菜单编辑器创建下拉式菜单和本实例将演示如何利用菜单编辑器创建下拉式菜单和弹出式菜单。以及如何动态修改菜单的状态,以及菜单控件弹出式菜单。以及如何动态修改菜单的状态,以及菜单控件数组的使用等。数组的使用等。10.3.10 10.3.10 菜单实例菜单实例10.4 10.4 小结小结本章详细介绍了多文档(本章详细介绍了多文档(MDI)应用程序,主要介)应用程序,主要介绍了绍了MDI应用程序的创建和使用,详细了解了应用程序的创建和使用,详细了解了MDI应用程序应用程序中如何使用中如何使用MDI窗体以及其创建的子窗体。菜单编辑器的使窗体以及其创建的子窗体。菜单编辑器的使用,下拉式菜单的创建方法,弹出式菜单的创建方法等。在用,下拉式菜单的创建方法,弹出式菜单的创建方法等。在下一章中,将详细介绍下一章中,将详细介绍Visual Basic 6.0的键盘与鼠标。的键盘与鼠标。人有了知识,就会具备各种分析能力,人有了知识,就会具备各种分析能力,明辨是非的能力。明辨是非的能力。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JBSNF-000028-生命科学试剂-MCE
- 2026年企业招聘道德测试题及答案
- 2026年长相思的测试题及答案
- 2026年关于读书测试题及答案
- 2026年成就需求测试题及答案
- 2026年bdc抑郁测试题及答案
- 调查报告关于职工思想动态情况的调查报告2026(2篇)
- 2026年摩托本理论测试题及答案
- 2026年亚马逊美国站测试题目及答案
- 2026年脾胃功能紊乱测试题及答案
- 初三道德与法治中考复习:开放性设问之倡议书、标语与活动方案专项突破教案
- 2025年合肥高新区社区工作者招聘考试试卷真题
- 2026福建漳州水仙药业股份有限公司招聘14人考试备考题库及答案解析
- 2026年安徽省检察机关招聘书记员考试真题
- 2025年荣耀AI隐私安全白皮书
- 2026届山东省聊城市临清市重点达标名校中考押题生物预测卷含解析
- 2026年高考(湖南卷)化学试题及答案
- 2025 地中海气候的特点和成因课件
- 围手术期营养支持指南
- 2025-2030中国小白鼠市场产能规模与投资风险预警研究报告
- 2026年山东高考英语真题试卷(新课标卷)(+答案)
评论
0/150
提交评论