
Visual Basic 6.0程序设计教程 第4版 普通高等教育十一五 国家级规划教材 教学课件 ppt 作者 罗朝盛 第10章 多文档界面与工具栏设计.ppt
22页第10章 多文档界面与工具栏设计,本章主要任务: 理解普通窗体界面与多文档界面(MDI)的区别; 掌握Windows应用程序工具栏的制作方法、状态栏的建立; 掌握Windows应用程序的多文档界面设计的方法10.1 多文档界面设计,多文档界面由父窗口和子窗口组成,一个父窗口可包含多个子窗口,子窗口最小化后将以图标形式出现在父窗口中,而不会出现在Windows的任务栏中当最小化父窗口时,所有的子窗口也被最小化,只有父窗口的图标出现在任务栏中父窗口就是MDI窗体,子窗口是指MDChild属性为True的普通窗体用户要建立一个MDI窗体,可以选择“工程”菜单中的“添加MDI窗体”命令,会弹出“添加MDI窗体”对话框,选择“新建MDI窗体”或“现存”的MDI窗体,再选择“打开”按钮10.1.1 创建多文档界面应用程序,1.创建MDI窗体,一个应用程序只能有一个MDI窗体,可以有多个MDI子窗体 MDI窗体类似于具有一个限制条件的普通窗体,除非控件具有Align属性(如PictureBox控件)或者具有不可见界面(如CommonDialog控件、Timer控件),不能将控件直接放置在MDI窗体上。
2. 创建和设计MDI子窗体 创建: MDI子窗体是一个MDIChild属性为True的普通窗体 要创建多个子窗体,通过窗体类来实现: Public Sub FileNewProc() Static No As Integer Dim NewDoc As New frmMDIChild No = No + 1 NewDoc.Caption = “no“ & No NewDoc.Show End Sub,10.1.1 创建多文档界面应用程序,10.1.2 显示MDI窗体及其子窗体 显示任何窗体的方法为show,还有有关规则: (1)加载子窗体时,其父窗体会自动加载并显示;反之则无 (2)MDI窗体有AutoShowChildren属性,决定是否自动显示子窗体,10.1.3 维护子窗体的状态信息,MDI窗体被卸载时,MDI窗体将触发QueryUnload事件,通过编写MDI窗体的QueryUnload事件驱动子程序来保存信息10.1 多文档界面设计,10.1.4 MDI应用程序中的菜单,在 MDI 应用程序中,MDI 窗体和子窗体上都可以建立菜单每一个子窗体的菜单都显示在 MDI 窗体上,而不是在子窗体本身。
当子窗体有焦点时,该子窗体的菜单(如果有的话)就代替菜单栏上的 MDI 窗体的菜单如果没有可见的子窗体,或者如果带有焦点的子窗体没有菜单,则显示 MDI 窗体的菜单1.创建 MDI 应用程序的菜单,2.多文档界面中的“窗口”菜单,(1) 显示打开的多个文档窗口 要在某个菜单上显示所有打开的子窗体标题,只需利用菜单编辑器将该菜单的WindowList属性设置为True (2).排列窗口 利用Arrange方法进行层叠、平铺和排列图标 形式: MDI窗体对象.Arrange 排列方式,10.1 多文档界面设计,10.2.1 ToolBar控件 把ToolBar控件添加到工具箱,将 “Microsoft Windows Common Controls 6.0”将控件添加到工具箱,通过ToolBar、ImageList组合使用建立工具栏,步骤 : 在ToolBar控件中创建Button对象 在ImageList控件中添加所需的图象 ToolBar控件的ButtonClick()事件程序的编写 在ButtonClick事件中用Select Case语句对各按钮进行相应的编程10.2 工具栏,1、在ToolBar控件中添加按钮 1.为工具栏连接图象,,ToolBar与 ImageList的连接,,工具栏样式,10.2 工具栏,2、在ImageList控件中添加图象 ImageList控件不单独使用,专门为其它控件提供图像库.,索引(Index)、 关键字(Key) 在ToolBar中引用 图象文件的扩展名为: .ico、.bmp、.gif、.jpg等,10.2 工具栏,3 .为工具栏增加按钮,,,索引(Index)、关键字(Key)每个按钮的编号、标识, ButtonClick事件中引用;,,图象(Image) ImageList对象中的图象,值可以是Key或Index,,样式(Style),共5种,除菜单按钮(5)外的4种样式,10.2 工具栏,4、 响应ToolBar控件事件 ToolBar控件常用的事件有两个:ButtonClick和ButtonMenuClick。
前者对按钮样式为0-2,后者对样式为5的菜单按钮 (1)用索引Index确定按钮 (2)用关键字Key确定按钮,Private Sub Toolbar1_ButtonClick(Byval Button As ComctlLib.Button) Select Case Button.Index Case 1 FileNewProc Case 2 FileOpenProc …… End Select End Sub 注意:第1个按钮的Index值为1用Index还是用Key比较,Key 可读性好,可维护性好Select Case Button.Key Case “TNew“ FileNewProc Case “TOpen“ FileOpenProc .,10.2.2 手工创建工具栏,在窗体或MDI窗体上手工创建工具栏,通常是用PictureBox控件作为工具栏按钮的容器,用CommandButton或Image控件作为工具栏的按钮要为工具栏上的每一个按钮指定一个图像和提示文字10.2 工具栏,StatusBar 控件能提供一个长方条的框架—状态栏,通常在窗体的底部,也可通过Align属性决定状态栏出现的位置。
用它可以显示出应用程序的运行状态,如光标位置、系统时间、键盘的大小写状态等10.3.1 建立状态栏,10.3 状态栏,10.3.2 动态显示状态栏信息,运行时,有些状态栏信息系统已具备,能自动显示,如图11-9状态栏中的第3~5窗格,但第2个窗格的值要通过编程来实现,以动态地显示光标在文本中的位置 Private Sub DocBox_Click() '当单击文本框时,当前光标位置在状态栏的第2个窗格显示 Findstart = DocBox.SelStart MDIForm1.StatusBar1.Panels(2).Text= Findstart End Sub,10.3 状态栏,RichTextBox控件可用于输入和编辑文本,它同时提供了比常规的TextBox控件更高级的格式特性 RichTextBox控件可以输入和编辑文本,还可以实现多种文字格式、段落等的设置,还可以插入图形的功能,可真正构成一个象Word一样的字处理软件 选择“Microsoft Rich TextBox Controls 6.0”将控件添加到工具箱 1.文件操作方法,10.4 一个简易的文本编辑器,10.4.1 RichTextBox控件,(1)LoadFile方法 LoadFile方法能够将RTF文件或文本文件装入控件,其形式如下: 对象.LoadFile 文件标识符[,文件类型] 文件类型: 0 或rtfRTF为RTF文件(缺省);1或rtfTEXT为文本文件 (2)SaveFile方法 SaveFile方法将控件中的文档保存为RTF文件或文本文件,其形式: 对象. SaveFile(文件标识符[,文件类型]),10.4 一个简易的文本编辑器,2.常用格式化属性 格式化属性,可对该控件中选中的任何部分的文本使用不同的格式,10.4.2 界面设计,10.4.3 代码清单,本章介绍多文档程序设计方法,绝大多数基于Windows的大型应用程序都是多文档界面,如Microsoft Excel和Microsoft Word等。
多文档界面可同时打开多个文档,它简化了文档之间的信息交换多文档界面通常包含一个MDI窗体(父窗体)和至少一个MDI子窗体(子窗体)子窗体是MDIChild属性为True的普通窗体,父窗体是子窗体的容器,所以父窗体中一般有菜单栏、工具栏和状态栏本章小结,工具栏的制作可组合使用ToolBar、ImageList控件,状态栏的制作可使用StatusBar控件工具栏的创建步骤如下: 在ImageList控件中添加所需的图像;在ToolBar 控件中建立与ImageList控件的关联,然后创建按钮对象;在按钮的ButtonClick事件中通常使用Select Case语句对各按钮进行相应的编程;StatusBar控件由Panel对象组成,一个状态栏至多可包含16个Panel对象每个Panel对象可包含文本和图片可以把Panels对象集合看作数组,每个窗格的Panels对象是数组的一个元素,Panel(i)对应第i个窗格本章小结,本章作业,。
