文档详情

VB对话框与菜单程序设计.ppt

发布:2019-01-02约1.36万字共108页下载文档
文本预览下载声明
Arrange 方法的语法为: MDI窗体对象. Arrange Arrangement 其中,Arrangement用来指定如何排列MDI应用程序的子窗体,其值可以是常数或是数值,Arrangement的取值如下表所示。 3 MDI窗体及子窗体 表 Arrangement的取值 常数 值 描述 vbCascade 0 层叠所有非最小化MDI子窗体 vbTileHorizontal 1 水平平铺所有非最小化MDI子窗体 vbTileVertical 2 垂直平铺所有非最小化MDI子窗体 vbArrangeIcons 3 重排最小化MDI子窗体的图标 3 MDI窗体及子窗体 例如:若“平铺”菜单项名为mnuHorizon,可编写如下代码,实现子窗体的平铺: Private Sub mnuHorizon_Click() MDIForm1.Arrange vbTileHorizontal MDIForm1为MDI窗体名称 End Sub 3 MDI窗体及子窗体 当平铺或者层叠有着固定边框类型的子窗体时,每个子窗体都像具有可变尺寸边框那样被定位,这使得子窗体可能重叠。 即使MDI窗体被最小化,仍可以重新排列窗口和图标,当MDI窗体最大化时,可以看到重排的结果。 3 MDI窗体及子窗体 (4)维护子窗体的状态信息 当子窗体被卸载时,其中的内容也会随之消失,所以在用户决定退出 MDI 应用程序时,必须有保存信息的机会,让用户执行存盘操作,这样才能确保数据不会丢失。当数据没有改变而去存盘是没有意义的,因此,应用程序必须随时都能确定自上次保存以来子窗体中的数据是否有改变。 (4)维护子窗体的状态信息 可以通过在每个子窗体中声明一个公用变量来实现此功能,例如: Public DataChangeed As Boolean 当子窗体中的内容改变时,可将此变量设为True。在保存完数据后,再设为False。 在MDI应用程序中,在关闭应用程序时,Visual Basic 将试图卸载 MDI 窗体,当 MDI 窗体被卸载时,QueryUnload 事件首先为 MDI 窗体调用,然后再为每一个打开的子窗体调用。如果在这些 QueryUnload 事件过程中没有代码,则取消 Unload 事件,然后,每一个子窗体被卸载,最后MDI 窗体被卸载。 (4)维护子窗体的状态信息 由于 QueryUnload 事件在窗体卸载之前被调用,因此在窗体卸载前可以给用户一个保存窗体、文件和一些数据的机会。我们可以在该事件过程中,判断前面声明的那个公用变量标志,然后提示用户是否执行保存操作,也可以在窗体的卸载事件(Unload)中判断此变量标志,这样,在MDI应用程序退出时就不会丢失数据了。 (4)维护子窗体的状态信息 4 MDI窗体的菜单 MDI 应用程序的菜单设计与一般应用程序的菜单设计方法一致,可利用【菜单编辑器】来完成,但MDI 应用程序的菜单还有其特殊性。 在 MDI 应用程序中,每一个子窗体的菜单都显示在 MDI 窗体上,而不是在子窗体本身。当子窗体有焦点时,该子窗体的菜单(如果有的话)就代替菜单栏上的 MDI 窗体的菜单。如果没有可见的子窗体,或者带有焦点的子窗体没有菜单,则显示 MDI 窗体的菜单。 4 MDI窗体的菜单 MDI 应用程序使用几套菜单的情况很普遍。当打开一个文档时,应用程序显示与该类文档相关的菜单。通常,当没有可见子窗体时,会显示一个不同的菜单。 例如,当没有文件打开时,Microsoft Excel 只显示“文件”与“帮助”菜单。当用户打开一个文件时,其他菜单就会显示出来,如“文件”、“编辑”、“视图”、“插入”、“格式”、“工具”和“窗口”等。 管理 MDI 应用程序中菜单的一个方法是把希望在任何时候都显示的菜单控件放在 MDI 窗体上,当运行该应用程序时,如果没有可见的子窗体,会自动显示 MDI 窗体菜单。把应用于子窗体的菜单控件放置到子窗体中,在运行时,只要有一个子窗体可见,这些菜单标题就会显示在 MDI 窗体的菜单栏中。 4 MDI窗体的菜单 虽然子窗体的菜单可替代主窗体的菜单,但在编写菜单命令的响应事件的处理时却不相同。在Visual Basic中,只能在本窗体内响应菜单命令,因此主菜单的命令处理只能在主窗体模块中进行,而子窗体的命令处理只能在子窗体模块中进行。即
显示全部
相似文档