VB6.0程序设计1VB6.0程序设计VB6.0程序设计2第5章菜单设计•任务11多文档编辑器VB6.0程序设计3任务11多文档编辑器•学习目的•工作任务•实现步骤•背景知识•小结•练习VB6.0程序设计4学习目的1.掌握菜单、弹出式菜单的设计方法。2.熟练掌握多文档界面(MDI)的设计。3.理解模态窗体和非模态窗体的区别。4.熟练掌握剪切板(ClipBoard)等系统内部对象的应用。VB6.0程序设计5工作任务•设计一个多文档界面(MDI)的文本编辑器程序,窗体上的主菜单有“文件”、“编辑”和“窗口”。其中“文件”菜单含“新建”和“退出”子菜单,“编辑”菜单含“剪切”、“复制”和“粘贴”子菜单,“窗口”菜单含“水平平铺”、“垂直平铺”和“层叠”子菜单。子窗体上有一个文本编辑区,要求实现菜单功能。))()((csbsassVB6.0程序设计6实现步骤•添加1个MDI窗体。–从VB菜单栏中的“工程”菜单下,选择“添加MDI窗体”,这时就在应用程序中添加了一个MDI父窗体。VB6.0程序设计7实现步骤•设置MDI子窗体。–子窗体本来就是普通窗体,设置普通窗体的MDIChild属性为True,则该普通窗体就变成MDI父窗体的子窗体,如果MDIChild属性为False(默认属性),则为普通窗体。VB6.0程序设计8实现步骤•在MDI窗体上添加菜单系统VB6.0程序设计9实现步骤•在添加菜单后,设计完成的MDI窗体mainfrm如图VB6.0程序设计10实现步骤•下面的代码实现MDI窗体中各菜单项的功能VB6.0程序设计11实现步骤VB6.0程序设计12实现步骤•编写子窗体childfrm的代码VB6.0程序设计13背景知识•菜单–菜单编辑器主要包含两部分:上面是菜单控件的属性设置区,下面是菜单列表区。–为了能够通过键盘访问菜单项,可在标题的一个字母前插入&符号。在运行时,该字母带有下划线(&符号是不可见的),按Alt键和该字母就可访问菜单或命令,称做访问键。菜单中不能使用重复的访问键。VB6.0程序设计14背景知识•弹出式菜单–弹出式菜单是独立于菜单栏而在窗体上的浮动菜单。弹出式菜单又称为上下文菜单。可以通过单击鼠标右键来激活上下文菜单。–建立弹出式菜单的步骤如下。–(1)在菜单编辑器中建立主菜单项(没有缩进符号)。–(2)将该主菜单项的“可见”属性设为不可见,这样主菜单项就不出现在窗体的菜单栏中。–(3)建立该主菜单项的下级菜单项。注意:要把下级菜单项的“可见”属性设为可见。–为了显示弹出式菜单,调用PopupMenu方法。VB6.0程序设计15背景知识•多文档界面–文档界面(MultipleDocumentInterface,MDI)相对于单文档界面而言,就是应用程序提供了一个父窗口,该父窗口包含有该应用程序中打开的所有子窗口。当该父窗口最小化或关闭时,它所包含的所有子窗口都最小化或关闭。VB6.0程序设计16背景知识•模态窗体和非模态窗体–当使用Show方法显示窗体时,使用的Style参数为1或vbModal,则显示的窗体为模态窗体,否则显示的为非模态窗体。–如果当前活动的窗体是模态方式显示,此时其他窗体都不可以用,必须将这个模态窗体隐藏或卸载后,其他窗体才能恢复到原来的使用状态。–如果多个窗体以非模态方式显示,则可以自由的在多个窗体之间进行切换,当单击其中一个窗体时,该窗体立即成立活动窗体并显示在屏幕的前端。–模态窗体和非模态窗体只有在显示的时候才有区别,设计的时候是一样的。VB6.0程序设计17背景知识•系统内部对象VB6.0程序设计18小结•菜单编辑器可以用来设计应用程序的菜单系统以及建立弹出式菜单,在多文档界面(MDI)程序设计中应用广泛。为了显示弹出式菜单,需调用PopupMenu方法。MDI应用程序往往包含多个子窗体,当打开多个子窗体时,可以用MDI父窗体的Arrange方法重新排列子窗体。模态窗体和非模态窗体决定了窗体的交互模式。•常用的系统内部对象有App、Screen、ClipBoard、Debug、Printer等。VB6.0程序设计19练习•1.在窗体上建立弹出式菜单,菜单项可以用来设置标签框中的文本字体大小。•2.设计多窗体切换的小程序,每个窗体上都有一个按钮,单击按钮时显示另外一个窗体,同时将本窗体隐藏。•3.设计一个多文档界面的文本编辑器,该程序能打开、编辑和保存文本文件,能实现剪切、复制、粘贴等操作,还可以设置字体大小和颜色,改变窗体的排列位置及背景色等。VB6.0程序设计20结束