《VB应用程序界面设计PPT.ppt》由会员分享,可在线阅读,更多相关《VB应用程序界面设计PPT.ppt(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机科学系计算机科学系软件设计基础软件设计基础河北理工大学河北理工大学VB程序设计计算机计算机第第4章章 应用程序界面设计应用程序界面设计本章学习目标:本章学习目标:掌握菜单的基本概念,熟练应用菜单编辑器创掌握菜单的基本概念,熟练应用菜单编辑器创建菜单并为菜单项编写代码建菜单并为菜单项编写代码熟练应用通用对话框及其操作语句熟练应用通用对话框及其操作语句掌握掌握RichTextBox控件的常用属性和方法控件的常用属性和方法掌握掌握MDI窗体的创建方法和编程方式窗体的创建方法和编程方式掌握文件系统控件同步方法掌握文件系统控件同步方法了解工具栏的创建方法了解工具栏的创建方法计算机计算机第第4章章
2、应用程序界面设计应用程序界面设计v本章重点本章重点文件系统控件的应用文件系统控件的应用菜单的创建菜单的创建增强文本框对文件的操作增强文本框对文件的操作v本章难点本章难点创建工具栏创建工具栏计算机计算机学习内容学习内容使用菜单和通用对话框创建文本编使用菜单和通用对话框创建文本编辑器辑器1 实例演示实例演示 问题分析问题分析 创建包含菜单的程序界面创建包含菜单的程序界面 创建菜单创建菜单 通用对话框控件通用对话框控件 RichTextBox控件控件 为菜单项编写程序代码为菜单项编写程序代码 创建弹出式菜单创建弹出式菜单带工具栏的文本编辑器带工具栏的文本编辑器2 问题分析问题分析 设计过程设计过程计
3、算机计算机学习内容学习内容使用文件系统控件创建文本文件浏使用文件系统控件创建文本文件浏览器览器4问题分析问题分析 设计过程设计过程 设计界面设计界面 编写代码编写代码建立多文档界面的文本编辑器建立多文档界面的文本编辑器3 问题分析问题分析 设计过程设计过程创建和设计创建和设计MDI父窗体父窗体创建和设计创建和设计MDI子窗体子窗体编写代码编写代码计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用对话框创建文本编辑器问题分析问题分析图图1是应用菜单的简单文本编辑器界面,界面中包含菜单、是应用菜单的简单文本编辑器界面,界面中包含菜单、RichTextBox增强文本框和通用对话框。菜单包
4、含两个菜单项,在增强文本框和通用对话框。菜单包含两个菜单项,在“文件文件”和和“编辑编辑”菜单下分别有子菜单,如图菜单下分别有子菜单,如图2和图和图3所示。运行程序,可以实现相应菜所示。运行程序,可以实现相应菜单项的功能。单项的功能。实例演示实例演示-实例实例4.1图1图2图3计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用对话框创建文本编辑器问题分析问题分析要实现题目要求,需要完成下面的操作:要实现题目要求,需要完成下面的操作:(1)新建标准)新建标准EXE工程。工程。(2)使用菜单编辑器创建图)使用菜单编辑器创建图2和图和图3所示的菜单。所示的菜单。(3)使用)使用“工程工程
5、”菜单下的菜单下的“部件部件”命令,添加通用对话框控件和命令,添加通用对话框控件和RichTextBox控件(增强文本框)到工具箱,再添加到窗体,如图控件(增强文本框)到工具箱,再添加到窗体,如图1所示。所示。(4)在每个菜单下编写代码,实现对应菜单项的功能。)在每个菜单下编写代码,实现对应菜单项的功能。计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用对话框创建文本编辑器创建包含菜单的程序界面创建包含菜单的程序界面1.新建工程,创建标准新建工程,创建标准.EXE 文件文件2.创建菜单创建菜单打开打开“菜单编辑器菜单编辑器”输入每个菜单标题、热键和名称输入每个菜单标题、热键和名称创
6、建创建“子菜单子菜单”项,设置标题和名项,设置标题和名称称设置子菜单的快捷键设置子菜单的快捷键分隔线分隔线计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用对话框创建文本编辑器创建包含菜单的程序界面创建包含菜单的程序界面3.添加添加“通用对话框通用对话框”控件控件打开打开“工程工程”菜单下的菜单下的“部件部件”命令。命令。在对话框中选择在对话框中选择“控件控件”选项卡,选选项卡,选择择“Microsoft Common Dialog Control 6.0”选项,如图所示。选项,如图所示。单击单击“确定确定”按钮。控件添加到工具按钮。控件添加到工具箱中。箱中。将控件添加到窗体上。将
7、控件添加到窗体上。添加到窗体上添加到窗体上的通用对话框的通用对话框通用对话通用对话框控件框控件计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用对话框创建文本编辑器创建包含菜单的程序界面创建包含菜单的程序界面4.添加增强文本框(添加增强文本框(RichTextBox)控控件,用于装载文本信息件,用于装载文本信息打开打开“工程工程”菜单下的菜单下的“部件部件”命令。命令。在对话框中选择在对话框中选择“控件控件”选项卡,选选项卡,选择择“Microsoft Rich TextBox Control 6.0”选项,如图所示。选项,如图所示。单击单击“确定确定”按钮。控件添加到工具按钮。控
8、件添加到工具箱中。箱中。将控件添加到窗体上。将控件添加到窗体上。添加到窗体上的添加到窗体上的RichTextBoxRichTextBox控件控件计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用对话框创建文本编辑器为菜单项编写程序代码为菜单项编写程序代码1.通用声明区代码通用声明区代码Dim m_strFname As String 用于存放文件名用于存放文件名Dim m_ch As Boolean 用于判断文件是否需要保存用于判断文件是否需要保存2.对对“文件文件”菜单的菜单项编写程序代菜单的菜单项编写程序代码码(1)通用对话框)通用对话框 CommonDialog 控件可以显示
9、如下常用对话框:控件可以显示如下常用对话框:“打开打开”、“另存为另存为”、“颜色颜色”、“字体字体”、“打印打印”、“帮助帮助”。而当前显示哪一种对话框将由。而当前显示哪一种对话框将由CommonDialog 控件的控件的Action属性或属性或Show方法来决定。方法来决定。计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用对话框创建文本编辑器为菜单项编写程序代码为菜单项编写程序代码2.对对“文件文件”菜单的菜单项编写程序代菜单的菜单项编写程序代码码Action属性和属性和Show方法说明方法说明Action属性属性Show方法方法说明说明1ShowOpen显示文件打开对话框显
10、示文件打开对话框2ShowSave显示另存为对话框显示另存为对话框3ShowColor显示颜色对话框显示颜色对话框4ShowFont显示字体对话框显示字体对话框5ShowPrinter显示打印机对话框显示打印机对话框6ShowHelp显示帮助对话框显示帮助对话框计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用对话框创建文本编辑器为菜单项编写程序代码为菜单项编写程序代码2.对对“文件文件”菜单的菜单项编写程序代菜单的菜单项编写程序代码码CancelError属性属性 通用对话框内有一个通用对话框内有一个“取消取消”按钮,用于向应用程序表示用户想取消当前操作。按钮,用于向应用程序表示
11、用户想取消当前操作。当该属性为当该属性为Ture时时,在用户按下,在用户按下“取消取消”按钮时,将按钮时,将出现错误警告出现错误警告;该属性为;该属性为False(缺省缺省):按下:按下“取消取消”按钮,按钮,不会出现错误警告不会出现错误警告。Dialogtitle属性属性 每个通用对话框都有默认的标题,在默认情况下,每个通用对话框都有默认的标题,在默认情况下,“打开打开”对话框的标题是对话框的标题是“打开打开”,“另存为另存为”对话框的标题是对话框的标题是“另存为另存为”。但用户可以使用。但用户可以使用Dialogtitle属性属性设置对话框的标题,可以是任意字符串设置对话框的标题,可以是任
12、意字符串。Flags属性属性 通用对话框的通用对话框的Flags属性可属性可修改每个具体对话框的默认操作修改每个具体对话框的默认操作。计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用对话框创建文本编辑器为菜单项编写程序代码为菜单项编写程序代码2.对对“文件文件”菜单的菜单项编写程序代菜单的菜单项编写程序代码码(2)文件对话框)文件对话框 分为:打开分为:打开(0pen)文件对话框和另存为文件对话框和另存为(save As)文件对话框文件对话框 FileName属性属性 用于设置或返回要打开或保存文件的路径及文件名用于设置或返回要打开或保存文件的路径及文件名,是完整的路径。如:,是
13、完整的路径。如:“d:progvbtest.frm”FileTitle属性属性 只指定或返回文件名,不包括路径。如:只指定或返回文件名,不包括路径。如:“test.frm”Filter 属性属性 确定打开或保存文件的文件类型,格式为:确定打开或保存文件的文件类型,格式为:说明字符说明字符1|类型描述类型描述1|说明字符说明字符2|类型描述类型描述2|例如:例如:CDlg.Filter=文本文件文本文件|*.txt|RTF文本文件文本文件|*.rtf|所有文件所有文件|*.*计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用对话框创建文本编辑器为菜单项编写程序代码为菜单项编写程序代码
14、2.对对“文件文件”菜单的菜单项编写程序代菜单的菜单项编写程序代码码 FilterIndex属性属性 用来指定默认的过滤器,其设置值为一整数。用来指定默认的过滤器,其设置值为一整数。用用Filter属性设置多个过滤器后,可使用属性设置多个过滤器后,可使用FiherIndex属性指定作为默认显示的过属性指定作为默认显示的过滤器。若不设置该属性,则默认滤器。若不设置该属性,则默认FilterIndex0 InitDir属性属性 用来指定打开对话框中的初始化目录,若显示当前目录,则该属性不需要设置。用来指定打开对话框中的初始化目录,若显示当前目录,则该属性不需要设置。计算机计算机使用使用 菜单和通用
15、对话框创建文本编辑器菜单和通用对话框创建文本编辑器为菜单项编写程序代码为菜单项编写程序代码2.对对“文件文件”菜单的菜单项编写程序代菜单的菜单项编写程序代码码(3)文件的读取和保存文件的读取和保存 RichTextBox控件可读取和保存文本文件,并可设置选定文字的格式。控件可读取和保存文本文件,并可设置选定文字的格式。读取文件方法:读取文件方法:对象对象.LoadFile 文件路径和名称,文件类型文件路径和名称,文件类型 保存文件方法:保存文件方法:对象对象.SaveFile 文件路径和名称,文件类型文件路径和名称,文件类型 其中:其中:文件类型为常数。当取值为文件类型为常数。当取值为rtfR
16、TF(或(或0)为)为.rtf文件文件 当取值为当取值为rtfText(或(或1)为文本文件)为文本文件计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用对话框创建文本编辑器为菜单项编写程序代码为菜单项编写程序代码2.对对“文件文件”菜单的菜单项编写程序代菜单的菜单项编写程序代码码 编写编写“打开打开”菜单下的程序菜单下的程序 Private Sub M_Open_Click()CDlg.Filter=文本文件文本文件|*.txt|RTF文本文件文本文件|*.rtf|所有文件所有文件|*.*“CDlg.InitDir=C:Windows CDlg.ShowOpen m_strFna
17、me=CDlg.FileName 取得文件名取得文件名 RText.LoadFile m_strFname 文件内容显示在增强文本框中文件内容显示在增强文本框中 m_ch=False 文件尚未保存文件尚未保存End Sub计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用对话框创建文本编辑器为菜单项编写程序代码为菜单项编写程序代码2.对对“文件文件”菜单的菜单项编写程序代菜单的菜单项编写程序代码码 编写编写“保存保存”菜单下的程序菜单下的程序 Private Sub M_Save_Click()If m_strFname=Then M_SaveAs_Click Else RText
18、.SaveFile m_strFname 保存已打开的文件保存已打开的文件 End If m_ch=False 文件已经被保存文件已经被保存End Sub计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用对话框创建文本编辑器为菜单项编写程序代码为菜单项编写程序代码2.对对“文件文件”菜单的菜单项编写程序代菜单的菜单项编写程序代码码 编写编写“另存为另存为”菜单下的程菜单下的程序序 Private Sub M_SaveAs_Click()CDlg.Filter=文本文件文本文件|*.txt|RTF文本文件文本文件|*.rtf|所有文件所有文件|*.*CDlg.InitDir=D:m_
19、strFname=CDlg.FileName RText.SaveFile m_strFnameEnd Sub计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用对话框创建文本编辑器为菜单项编写程序代码为菜单项编写程序代码3.对对“编辑编辑”菜单的菜单项编写程序代菜单的菜单项编写程序代码码 实现将选中的内容复制到剪贴板实现将选中的内容复制到剪贴板 (1)剪贴板)剪贴板 在在VB中,表示剪贴板的对象是中,表示剪贴板的对象是Clipboard,其含义与,其含义与Windows应用程序是一致应用程序是一致的。它使用户能够复制、剪切和粘贴应用程序中的文本和图形。的。它使用户能够复制、剪切和粘
20、贴应用程序中的文本和图形。(2)清除剪贴板)清除剪贴板 Clipboard.Clear(3)将文本字符串放到剪贴板上)将文本字符串放到剪贴板上 Clipboard.SetText data,format data是要放置的字符串,是要放置的字符串,format是指明剪贴板的格式是指明剪贴板的格式计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用对话框创建文本编辑器为菜单项编写程序代码为菜单项编写程序代码3.对对“编辑编辑”菜单的菜单项编写程序代菜单的菜单项编写程序代码码 实现将选中的内容复制到剪贴板实现将选中的内容复制到剪贴板 Private Sub M_Copy_Click()C
21、lipboard.Clear 清空剪贴板清空剪贴板 Clipboard.SetText RText.SelText 将文本框中选择的文本放到剪贴板上将文本框中选择的文本放到剪贴板上End Sub 实现将选中的内容剪切到剪贴板实现将选中的内容剪切到剪贴板 Private Sub M_Cut_Click()Clipboard.Clear Clipboard.SetText RText.SelText RText.SelText=End Sub计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用对话框创建文本编辑器为菜单项编写程序代码为菜单项编写程序代码3.对对“编辑编辑”菜单的菜单项编写
22、程序代菜单的菜单项编写程序代码码 将剪贴板内容粘贴到目标位置将剪贴板内容粘贴到目标位置 Private Sub M_Paste_Click()RText.SelText=Clipboard.GetTextEnd SubPrivate Sub RText_Change()m_ch=TrueEnd Sub4.其他相关的程序代码其他相关的程序代码 增强文本框的增强文本框的Change事件代码事件代码 计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用对话框创建文本编辑器为菜单项编写程序代码为菜单项编写程序代码 卸载窗体的代码卸载窗体的代码 Private Sub Form_Unload(
23、Cancel As Integer)If m_ch=True Then If MsgBox(文件已经修改过,保存文件吗?文件已经修改过,保存文件吗?,vbYesNo+vbQuestion,提提示示)=vbYes Then If m_strFname=Then M_SaveAs_Click Else RText.SaveFile m_strFname End If End If End IfEnd Sub4.其他相关的程序代码其他相关的程序代码计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用对话框创建文本编辑器为菜单项编写程序代码为菜单项编写程序代码 实现对选中文本字体的设置实现对
24、选中文本字体的设置 (1)“字体字体”对话框对话框 对象对象.ShowFont方法打开字体对话框。方法打开字体对话框。Flags属性属性 在显示在显示“字体字体”对话框之前对话框之前必须设置必须设置Flags属性,否则将发生不存在字体的错误属性,否则将发生不存在字体的错误。该属性。该属性通知通知CommonDialog控件是否显示屏幕字体、控件是否显示屏幕字体、打印机字体或两者都显示。打印机字体或两者都显示。“字体字体”对话框的对话框的Flags属性设置值如表所示属性设置值如表所示5.编写编写“格式格式”菜单下的代码菜单下的代码(此部分内容可自学)(此部分内容可自学)“字体字体”对话框的对话框
25、的FlagsFlags属性值及说明属性值及说明常数常数值值说明说明CdlCFScreenFCdlCFScreenFontsonts&H1&H1屏幕字体屏幕字体CdlCFPrinterCdlCFPrinterFontsFonts&H2&H2打印机字体打印机字体CdlCFBothCdlCFBoth&H3&H3屏幕字体和打印机字屏幕字体和打印机字体体CdlCFEffectsCdlCFEffects&H100&H100显示删除线、下划线、显示删除线、下划线、颜色等元素颜色等元素计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用对话框创建文本编辑器为菜单项编写程序代码为菜单项编写程序代码 实
26、现对选中文本字体的设置实现对选中文本字体的设置 Font属性集属性集 包括包括FontName(字体名)、(字体名)、FontSize(字号)、(字号)、FontBold(粗体)、(粗体)、FontItalic(斜体)、(斜体)、FontUnderLine(下划线)、(下划线)、FontStrikethre(删除线)。(删除线)。5.编写编写“格式格式”菜单下的代码菜单下的代码 Color属性属性该属性表示字体的颜色,要使用这个属性,必须使该属性表示字体的颜色,要使用这个属性,必须使Flags含有含有cdlCFEffects值。值。计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用
27、对话框创建文本编辑器为菜单项编写程序代码为菜单项编写程序代码 实现对选中文本字体的设置实现对选中文本字体的设置 (2)选中文本字体设置)选中文本字体设置 增强文本框有属性:增强文本框有属性:SelFontName、SelFontSize、SelItalic、SelBold、SelUnderline、SelStrikeThru、SelColor 可分别用于设置选中文本字体、字号、倾斜、加粗、下划线、删除线和颜色可分别用于设置选中文本字体、字号、倾斜、加粗、下划线、删除线和颜色5.编写编写“格式格式”菜单下的代码菜单下的代码计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用对话框创建文
28、本编辑器为菜单项编写程序代码为菜单项编写程序代码 实现对选中文本字体的设置实现对选中文本字体的设置 (3)代码)代码Private Sub M_Font_Click()CDlg.Flags=cdlCFBoth Or cdlCFEffects CDlg.ShowFont RText.SelFontName=CDlg.FontName RText.SelFontSize=CDlg.FontSize RText.SelItalic=CDlg.FontItalic RText.SelBold=CDlg.FontBold RText.SelUnderline=CDlg.FontUnderline RTe
29、xt.SelStrikeThru=CDlg.FontStrikethru RText.SelColor=CDlg.ColorEnd Sub5.编写编写“格式格式”菜单下的代码菜单下的代码 实现对选中文本颜实现对选中文本颜色的设置色的设置 请同学们自请同学们自行完成行完成计算机计算机使用使用 菜单和通用对话框创建文本编辑器菜单和通用对话框创建文本编辑器创建弹出式菜单创建弹出式菜单菜单有下拉菜单和弹出式菜单两种,前面创建的菜单为下拉菜单,它是一个菜单有下拉菜单和弹出式菜单两种,前面创建的菜单为下拉菜单,它是一个嵌入到窗体中的菜单。弹出式菜单是按下鼠标键时在窗体的某个地方出现的嵌入到窗体中的菜单。弹
30、出式菜单是按下鼠标键时在窗体的某个地方出现的菜单,它没有固定的位置,所以又叫浮动菜单。菜单,它没有固定的位置,所以又叫浮动菜单。可以用可以用PopupMenu方法把菜单以弹出式菜单的形式显示。方法把菜单以弹出式菜单的形式显示。Private Sub RText_MouseDown(Button As Integer,Shift As Integer,x As Single,y As Single)If Button=2 Then PopupMenu M_Edit End IfEnd Sub计算机计算机带工具栏的文本编辑器带工具栏的文本编辑器问题分析问题分析实例实例4.2计算机计算机带工具栏的文
31、本编辑器带工具栏的文本编辑器问题分析问题分析工具栏是对菜单操作的简化,将经常使用的菜单用形象的图形按钮显示在菜工具栏是对菜单操作的简化,将经常使用的菜单用形象的图形按钮显示在菜单的下方,使用户直接进行某个功能的操作。单的下方,使用户直接进行某个功能的操作。工具栏是图形化的命令按钮集合。每一个工具栏按钮都有自己形象化的图标,并且工具栏是图形化的命令按钮集合。每一个工具栏按钮都有自己形象化的图标,并且可以进入相应的操作。可以进入相应的操作。VB也提供了相应的控件来建立和管理工具栏及其用到的图标,也提供了相应的控件来建立和管理工具栏及其用到的图标,它是通用它是通用Windows控件的控件的ToolB
32、ar控件和控件和ImageList控件。控件。ToolBar控件虽然是工具栏控件,但是它只是能建立工具栏,还必须通过控件虽然是工具栏控件,但是它只是能建立工具栏,还必须通过ImageList控件来管理工具栏按钮上的图标。控件来管理工具栏按钮上的图标。同样同样ImageList控件只是一个提供图像资料的存储库。控件只是一个提供图像资料的存储库。所以为了创建带图标的工具栏,必须将图标文件先装入所以为了创建带图标的工具栏,必须将图标文件先装入ImageList控件,然后再建立控件,然后再建立ToolBar控件的按钮,两个控件配合使用才能完成工具栏的创建。控件的按钮,两个控件配合使用才能完成工具栏的创
33、建。计算机计算机带工具栏的文本编辑器带工具栏的文本编辑器设计过程设计过程1.打开前面建立的文本编辑器打开前面建立的文本编辑器2.为工具箱添加为工具箱添加ToolBar和和ImageList控件控件计算机计算机带工具栏的文本编辑器带工具栏的文本编辑器设计过程设计过程3.为为ImageList控件装入图标控件装入图标 通常用位图文件(通常用位图文件(*.bmp)或图标文件()或图标文件(*.ico)作为工具按钮上的图像文件。一)作为工具按钮上的图像文件。一些些Windows通用的图像文件在通用的图像文件在Windows系统中都会提供,如打开、保存、复制、系统中都会提供,如打开、保存、复制、剪切、粘
34、贴等。剪切、粘贴等。VB提供的图像资料在提供的图像资料在VB系统目录系统目录COMMONGRAPHICSBITMAPSOFFCTLBR路径下,里面有两个子文件夹:路径下,里面有两个子文件夹:SMALL和和LARGE,分别提供大尺寸和小尺寸的图像,里面还分别存放了彩色,分别提供大尺寸和小尺寸的图像,里面还分别存放了彩色Color和黑背和黑背B&W的图像文件,我们可以将所需要的图像文件复制到自己的文件夹的图像文件,我们可以将所需要的图像文件复制到自己的文件夹下使用。下使用。计算机计算机带工具栏的文本编辑器带工具栏的文本编辑器设计过程设计过程3.为为ImageList控件装入图标控件装入图标 右击右
35、击ImageList控件,打开菜单并单击控件,打开菜单并单击“属性属性”命令。命令。打开打开ImageList控件的属性页,在控件的属性页,在“通用通用”选项卡,选择按钮所需要的图像尺寸。选项卡,选择按钮所需要的图像尺寸。选择选择“图像图像”选项卡。单击选项卡。单击“插入图片插入图片”按钮,选择一个图片文件。重复此步骤,按钮,选择一个图片文件。重复此步骤,直到所有图片加进来为止。直到所有图片加进来为止。计算机计算机带工具栏的文本编辑器带工具栏的文本编辑器设计过程设计过程4.为为ToolBar控件建立按钮控件建立按钮 右击右击ToolBar控件,打开菜单并单击控件,打开菜单并单击“属性属性”命令
36、。命令。在在“通用通用”选项卡中,从图像列表中选择选项卡中,从图像列表中选择ImageList1(是名称)。(是名称)。单击单击“按钮按钮”选项卡,进行相应的设置。选项卡,进行相应的设置。单击单击“插入按钮插入按钮”,设置图像值(与,设置图像值(与ImageList控件中图片的索引值对应,即选控件中图片的索引值对应,即选择了图标)。设置工具提示文本(显示)和关键字(名称)。重复此步骤,直至完择了图标)。设置工具提示文本(显示)和关键字(名称)。重复此步骤,直至完成成计算机计算机带工具栏的文本编辑器带工具栏的文本编辑器设计过程设计过程5.为工具栏按钮编写代码为工具栏按钮编写代码Private S
37、ub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)Select Case Button.Key Case T_Open M_Open_Click 调用调用“打开打开”过程过程 Case T_Save M_Save_Click 调用调用“保存保存”过程过程 Case T_Copy M_Copy_Click 调用调用“复制复制”过程过程 Case T_Cut M_Cut_Click 调用调用“剪切剪切”过程过程 Case T_Paste M_Paste_Click 调用调用“粘贴粘贴”过程过程 End Select End Sub
38、计算机计算机建立多文档界面(建立多文档界面(MDI)的文本编辑器)的文本编辑器问题分析问题分析前面完成的文本编辑器每次只能对一个文件操作,那么,能否像前面完成的文本编辑器每次只能对一个文件操作,那么,能否像Office软件软件一样可以同时操作多个文件呢?一样可以同时操作多个文件呢?VB提供了一种叫做提供了一种叫做MDI窗体的功能,可以实现多文档操作。窗体的功能,可以实现多文档操作。窗体由一个父窗体和多个子窗体组成,父窗体作为子窗体的容器;子窗体由一个父窗体和多个子窗体组成,父窗体作为子窗体的容器;子窗体显示各自的文档。窗体显示各自的文档。实例实例4.3计算机计算机建立多文档界面(建立多文档界面
39、(MDI)的文本编辑器)的文本编辑器问题分析问题分析多文档界面具有如下特性:多文档界面具有如下特性:(1)一个工程只能有一个)一个工程只能有一个MDI窗体窗体(2)MDI父窗体是一个容器型窗体,它里面可以容纳其他的窗体。界面上只能放父窗体是一个容器型窗体,它里面可以容纳其他的窗体。界面上只能放置菜单和少数几个控件,如置菜单和少数几个控件,如PictureBox控件、控件、Timer控件、控件、CommonDialog控件等,控件等,其他的控件无法建立。其他的控件无法建立。(3)MDI的子窗体就是普通窗体,只是它的窗体属性的子窗体就是普通窗体,只是它的窗体属性MDIChild为为True。(4)
40、MDI的父窗体和子窗体都可以有各自的菜单。的父窗体和子窗体都可以有各自的菜单。(5)在)在MDI应用程序中,任何一个窗体都可以设置为启动窗体。加载子窗体时,应用程序中,任何一个窗体都可以设置为启动窗体。加载子窗体时,父窗体会自动加载;但是加载父窗体,子窗体不会自动加载,必须使用父窗体会自动加载;但是加载父窗体,子窗体不会自动加载,必须使用Show方法方法进行加载。父窗体的进行加载。父窗体的AutoShowChildren属性可以用来设置子窗体在加载时自动显属性可以用来设置子窗体在加载时自动显示。示。(6)MDI窗体和普通的窗体(未设置为子窗体)可以同时存在于一个工程里。窗体和普通的窗体(未设置
41、为子窗体)可以同时存在于一个工程里。计算机计算机建立多文档界面(建立多文档界面(MDI)的文本编辑器)的文本编辑器问题分析问题分析多文档中子窗体的排列:多文档中子窗体的排列:可以对多个窗口进行层叠、水平平铺、垂直平铺等排列,使用可以对多个窗口进行层叠、水平平铺、垂直平铺等排列,使用MDI窗体的窗体的Arrage方方法,语句格式为:法,语句格式为:对象对象.Arrange 排列方式排列方式排列方式可以为:排列方式可以为:VbCascade:层叠所有非最小化的:层叠所有非最小化的MDI窗体,取值为窗体,取值为0。VbTileHorizontal:水平平铺:水平平铺所有非最小化的所有非最小化的MDI
42、窗体,取值为窗体,取值为1。VbTileVertical:垂直平铺所有非最小化的:垂直平铺所有非最小化的MDI窗体,取值为窗体,取值为2。VbArrangeIcons:重排所有最小化:重排所有最小化MDI子窗体图标,取值为子窗体图标,取值为3。计算机计算机建立多文档界面(建立多文档界面(MDI)的文本编辑器)的文本编辑器设计过程设计过程1.创建和设计创建和设计MDI父窗体父窗体 新建工程新建工程。选择选择“工程工程”菜单的菜单的“添加添加MDI窗体窗体”命令。设置窗体名称和标题。命令。设置窗体名称和标题。为为MDI窗体创建菜单,主菜单和各级子菜单如图所示。窗体创建菜单,主菜单和各级子菜单如图所
43、示。在在MDI窗体添加对话框和工具栏控件,如图所示。窗体添加对话框和工具栏控件,如图所示。计算机计算机建立多文档界面(建立多文档界面(MDI)的文本编辑器)的文本编辑器设计过程设计过程2.创建和设计创建和设计MDI子窗体子窗体 创建一个新的窗体或打开一个已存在的窗体创建一个新的窗体或打开一个已存在的窗体。将窗体的将窗体的MDIChild属性设置为属性设置为True,修改窗体名称。,修改窗体名称。为窗体添加一个增强文本框为窗体添加一个增强文本框RichTextBox,界面如图所示。,界面如图所示。创建多文档的应用程序,创建多文档的应用程序,需要的子窗体肯定不只一需要的子窗体肯定不只一个,但是如果
44、在设计时就个,但是如果在设计时就建立多个子窗口显然时不建立多个子窗口显然时不合适的,所以只需要建立合适的,所以只需要建立一个子窗体作为模板一个子窗体作为模板计算机计算机建立多文档界面(建立多文档界面(MDI)的文本编辑器)的文本编辑器设计过程设计过程3.为为MDI窗体编写代码窗体编写代码(1)对象变量的简单说明)对象变量的简单说明因为我们要在程序运行时,在需要的时候利用模板(已建立的子窗体)创建因为我们要在程序运行时,在需要的时候利用模板(已建立的子窗体)创建多个多个MDI子窗体,所以子窗体,所以MDI窗体的新建需要用到对象变量,使用方法为:窗体的新建需要用到对象变量,使用方法为:声明对象(窗
45、体)变量,格式为:声明对象(窗体)变量,格式为:Dim newchild As frmMDIChild 其中:其中:newchild为对象变量名,为对象变量名,frmMDIChild为已建的窗体名称为已建的窗体名称 新建对象(窗体),格式为:新建对象(窗体),格式为:Set newchild=New frmMDIChild计算机计算机建立多文档界面(建立多文档界面(MDI)的文本编辑器)的文本编辑器设计过程设计过程3.为为MDI窗体编写代码窗体编写代码(2)MDI子窗体代码子窗体代码通用声明区代码通用声明区代码 Public m_strFname As String 用来存放子窗体的文件名,每
46、个子窗体的文件名都是不同的,所以每个子窗体文用来存放子窗体的文件名,每个子窗体的文件名都是不同的,所以每个子窗体文件名由各自的窗体保存件名由各自的窗体保存 增强文本框弹出菜单的代码增强文本框弹出菜单的代码 Private Sub RText_MouseDown(Button As Integer,Shift As Integer,x As Single,y As Single)If Button=2 Then PopupMenu frmMDImain.M_Edit End If End Sub计算机计算机建立多文档界面(建立多文档界面(MDI)的文本编辑器)的文本编辑器设计过程设计过程3.为为
47、MDI窗体编写代码窗体编写代码(2)MDI子窗体代码子窗体代码编写子窗体关闭时的代码编写子窗体关闭时的代码Private Sub Form_Unload(Cancel As Integer)If MsgBox(文件已经修改过,保存文件吗?文件已经修改过,保存文件吗?,vbYesNo+vbQuestion,提示提示)=vbYes Then If m_strFname=Then frmMDImain.M_SaveAs_Click Else RText.SaveFile m_strFname End If End IfEnd Sub此处调用了此处调用了MDI父窗体中的事父窗体中的事件过程,所以需要将
48、此过程的件过程,所以需要将此过程的“Private”改为改为“Public”,在编写,在编写MDI父窗体中的此过父窗体中的此过程时注意。程时注意。计算机计算机建立多文档界面(建立多文档界面(MDI)的文本编辑器)的文本编辑器设计过程设计过程3.为为MDI窗体编写代码窗体编写代码(3)MDI父窗体代码父窗体代码通用声明区代码通用声明区代码 Dim newchild As frmMDIChild“新建新建”菜单的程序菜单的程序Private Sub M_New_Click()Set newchild=New FrmMDIChild 新建新建MDI子窗体子窗体 newchild.Show newch
49、ild.RText.Text=newchild.Caption=新文档新文档End Sub计算机计算机建立多文档界面(建立多文档界面(MDI)的文本编辑器)的文本编辑器设计过程设计过程3.为为MDI窗体编写代码窗体编写代码(3)MDI父窗体代码父窗体代码“打开打开”菜单的程序菜单的程序Private Sub M_Open_Click()Set newchild=New FrmMDIChild 新建新建MDI子窗体子窗体 newchild.Show CDlg.Filter=文本文件文本文件|*.txt|RTF文本文件文本文件|*.rtf|所有文件所有文件|*.*CDlg.InitDir=C:Wi
50、ndows CDlg.ShowOpen newchild.m_strFname=CDlg.FileName 取得文件名取得文件名 newchild.RText.LoadFile CDlg.FileName 文件内容显示在增强文本文件内容显示在增强文本框中框中 newchild.Caption=newchild.m_strFnameEnd Sub计算机计算机建立多文档界面(建立多文档界面(MDI)的文本编辑器)的文本编辑器设计过程设计过程3.为为MDI窗体编写代码窗体编写代码(3)MDI父窗体代码父窗体代码“保存保存”菜单的程序菜单的程序Public Sub M_Save_Click()If f