第8章通用对话框、菜单、多文档界面.ppt

上传人:本田雅阁 文档编号:2094625 上传时间:2019-02-13 格式:PPT 页数:29 大小:429.51KB
返回 下载 相关 举报
第8章通用对话框、菜单、多文档界面.ppt_第1页
第1页 / 共29页
第8章通用对话框、菜单、多文档界面.ppt_第2页
第2页 / 共29页
第8章通用对话框、菜单、多文档界面.ppt_第3页
第3页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第8章通用对话框、菜单、多文档界面.ppt》由会员分享,可在线阅读,更多相关《第8章通用对话框、菜单、多文档界面.ppt(29页珍藏版)》请在三一文库上搜索。

1、第 8 章,多文档界面,通用对话框,菜单,在VB应用程序中用户界面设计是必需的,界面设计一般包括通用对话框、菜单、多文档界面等。 本章主要内容 通用对话框:打开、另存、颜色、字体、打印和帮助 菜单设计:下拉式、弹出式和动态菜单 界面:单文档界面和多文档界面,第8章 通用对话框、菜单、多文档界面,通用对话框(Common Dialog)控件提供了一组基于Windows的标准对话框界面:打开、保存、颜色、字体、帮助和打印对话框。 这些对话框仅用于返回信息,不能真正实现相关的操作。 如要打开一个文件,打开文件对话框仅仅显示文件的选择功能,真正要实现打开文件的功能必须通过用户编程解决。 8.1.1 添

2、加通用对话框(Common Dialog)控件工具箱 两种方法: 1、菜单:工程部件,在对话框中选“Microsoft Common Dialog Control 6.0 ” 2、快捷:工具箱单击鼠标右键,在快捷菜单中选“部件”,在对话框中选“Microsoft Common Dialog Control 6.0 ”,8.1 通用对话框,通用对话框控件没有事件,只有方法和属性。 通过方法或Action属性值显示标准对话框。 通用对话框控件中的每一个标准对话框都有自己的属性。,8.1.2 通用对话框的使用,格式: .ShowOpen 或 .Action=1 作用:选择要打开文件的驱动器、文件路径

3、、文件名及文件扩展名。,8.1.3 “打开文件”对话框,Filter属性:用来返回或设置在对话框的类型列表框中所显示的文件类型。设置过滤器的语法格式: .Filter=description1 |filter1 |description2 |filter2. 如:文本文件(*.txt)|*.txt|位图文件(*.bmp)|*.bmp|图标文件(*.ico)|*.ico 8.1.4 “另存为”对话框 “另存为”对话框用于对正在操作的文件进行指定文件名保存。 属性同“打开文件”对话框。 格式为: .ShowSave 或 .Action=2 作用:仅仅显示一个标准对话框,真正要另存文件还要通过编程实

4、现。 例 8-1 编程显示“打开”和“另存”对话框,并显示所选文件及路径。,8.1.3 “打开文件”对话框,程序代码,颜色对话框通过showColor方法或Action设为3打开。 作用:供用户选择颜色,通过Color属性得到颜色值。 例8-2 在例题8-1的基础上,添加一个按钮,命名为Command4,用于选取颜色,并设置文本框的字体颜色。 设置字体颜色 Private Sub Command4_Click() Dlog.ShowColor Text1.ForeColor = Dlog.Color End Sub,8.1.5 “颜色”对话框,程序代码,字体对话框通过ShowFont方法或Ac

5、tion属性设为4打开。 主要属性:FontName属性、 FontSize属性、 FontBold属性、 FontItalic属性、 Color属性、Flags属性。 显示字体对话框之前,必须先设置对话框控件的 Flags 属性为下列三个常数或值中的一个: cdlCFBoth 或 &H3, cdlCFPrinterFonts 或 &H2, 以及 cdlCFScreenFonts 或 &H1。 例8-3 在例题8-2的基础上,让用户设置文本框中字体。 Private Sub Command5_Click() 设置字体 用flags属性来设置是屏幕字体还是打印机字体效果 Dlog.Flags =

6、 cdlCFScreenFonts Or cdlCFPrinterFonts Dlog.ShowFont With Text1 .FontName = Dlog.FontName .FontSize = Dlog.FontSize .FontBold = Dlog.FontBold .ForeColor = Dlog.Color End With End Sub,8.1.6 “字体”对话框,程序代码,打印对话框通过ShowPrint方法或Action属性设为5打开。 打印对话框仅供用户对打印参数进行设置,要实现打印功能还需要通过对Printer对象编程完成。 主要属性:Copies(复制份数)

7、属性、 FromPage(起始页号)属性、ToPage属性等属性。 例8-4 程序代码 在例题8-3中再添加一个打印输出的功能,对文本框中的内容打印出来。 打开打印机的设置对话框 ,打印文本框中的内容 Private Sub Command6_Click() 设置打印机的打印属性 Dlog.ShowPrinter Printer.FontSize = Text1.FontSize 打印的字体用文本框的字体 Printer.Print Text1.Text 送到打印机去打印 Printer.EndDoc 打印结束 End Sub,8.1.7 “打印”对话框,帮助对话框一般用于制作应用程序的联机帮

8、助,通过ShowHelp方法或Action属性设为6打开。 帮助对话框仅适用于Windows98以下版本,即适用帮助文件扩展名为*.hlp;而Windows2000以后的帮助文件已经改变,其扩展名为*.chm。,8.1.8 “帮助”对话框,在VB中,每一个菜单项都是一个控件对象,和其它对象一样,有属性和事件。 菜单按使用形式有下拉式菜单和弹出式菜单。 下拉式菜单位于窗口的顶部。作为程序的主控系统 弹出式菜单是独立于窗体菜单栏而显示在窗体内的浮动菜单,一般用单击鼠标右键来打开。 一个菜单可以有下一级的菜单,称子菜单,即从一个菜单打开另一个菜单;子菜单也可以有下一级的子菜单,最多可达6级。 一个菜

9、单项可以有热键或快捷键。 热键由Alt键与字符或与数字键组合而成,也可以单一字符键或数字键组成。 快捷键则由Ctrl键(或与Shift键)与字符等组合而成。 顶级菜单如果存在下级子菜单,则顶级菜单只能有热键。 子菜单可以有热键及快捷键。,8.2 菜单设计,启动菜单编辑器: 有三种方法 1. 单击工具栏菜单图标 2. 工具/菜单编辑器 (CTRL+E) 3. 窗体上快捷菜单 菜单编辑器,8.2.1 菜单编辑器,菜单的属性 1.标题(Caption):显示菜单标题 - :分隔线 热键:& 2.名称(Name) 3.索引(Index) 4.复选(Checked) 5.有效(Enabled) 6.可见

10、(Visible),例 8-5 把例8-4的功能以菜单的形式实现,菜单结构如表所示。,程序代码,弹出式菜单的设计与下拉式菜单设计相同,如果不想菜单显示在窗体顶部,只需把顶级菜单的Visible属性设置为False即可。 在应用程序中,可以用PopuMenu方法实现弹出式菜单的显示,语法格式: .PopupMenu ,x,y, menuname:顶级菜单名,指定的菜单必须含有至少一个子菜单。 X,Y:可选项,指定显示弹出式菜单的 X和Y 坐标。省略,则使用鼠标的坐标。 Boldcommand:可选项,指定弹出式菜单中的菜单控件的名字,用以显示其黑体正文标题。如果该参数省略,则弹出式菜单中没有以黑

11、体字出现的控件。,8.2.2 弹出菜单,Flags:可选项,定义弹出菜单的位置和行为。,8.2.2 弹出菜单,如 vbPopupMenuCenterAlign OR vbPopupMenuRightButton或4+2,表示指定弹出式菜单的于x居中位,并且不论使用鼠标右按钮还是左按钮, 弹出式菜单中的项目都响应鼠标单击。,例8-6 在例8-5的文本框中点击鼠标右键时,在鼠标当前位置弹出编辑菜单项。 显示编辑的弹出菜单 Private Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

12、在文本框对象上鼠标弹起事件 If Button = 2 Then Button=2说明按下的是鼠标右键 PopupMenu Edit, vbPopupMenuCenterAlign, , , EditColor 弹出“编辑”菜单 End If End Sub. 例8-6的弹出菜单命令代码中缺省了X,Y坐标。,8.2.2 弹出菜单,程序代码,上述的例子中,菜单设计好后就不能在应用程序运行中随时增加或删除。要实现随着应用程序的变化动态地增减菜单项,需要使用菜单控件数组。 菜单控件与其它控件一样可以设为控件数组,然后用Load方法加载,用UnLoad方法删除。 例8-7 在Word中,最近打开的文件

13、名都会在文件菜单中以菜单的形式出现。对例8-6仿Word,把打开菜单随选的的文件名也以菜单形式显示,显示文件名限定4个,超过4个以后采用先进先出算法更新文件名。,8.2.3 动态菜单 ,程序代码,普通窗体 :应用程序的窗体可以在屏幕内任意移动,某一窗体的打开或关闭等操作不会影响其它窗体,这些窗体称普通窗体 。 父窗体及子窗体 :应用程序的一个窗体(父窗体)中包含多个窗体(子窗体),父窗体一旦关闭子窗体也随之关闭,父窗体可以在屏幕内任意移动,子窗体只能在父窗体内移动。 应用程序中窗体间的关系: 1、互相独立。普通窗体间的关系 2、父子关系。 根据窗体之间的关系,应用程序界面分两种样式: 1、单文

14、档界面(Single Document Interface,简称SDI) 2、多文档界面(Multiple Document Interface,简称MDI),8.3 单文档界面和多文档界面,单文档界面应用程序中可以只有一个普通窗体,也可以有多个普通窗体 ,窗体间互相独立,窗体可以在屏幕内任意移动。如果单文档界面的应用程序中有多个窗体,称多重窗体。 单文档界面的设计无须特别申明。 如果应用程序中需要多个普通窗体,在程序设计时,需要考虑多重窗体的有关操作:添加窗体,设置启动对象,窗体的调用等。 在程序运行时,同一时刻只能有一个活动窗体。,8.3.1 单文档界面 ,1添加窗体 三种方法: A.选择

15、“工程”菜单的“添加窗体”子菜单 B.选择工具栏的添加窗体按钮 C.在工程资源管理窗口单击鼠标右键,在出现的快捷菜单中选择“添加”菜单中的“添加窗体”菜单 选择“添加窗体”菜单后,会出现一个“添加窗体”对话框,在对话框中有“新建”和“现存”两个选项卡,通过“新建”选项卡可以选择需要的窗体样式创建到工程中;通过“现存”选项卡可以把已存在的窗体文件(扩展名为frm)添加到工程中。,8.3.1 单文档界面 ,2设置启动对象 在程序运行时,首先执行的对象称启动对象。每一个工程都需要且只能有一个启动对象,启动对象可以是一个窗体,也可以是Sub Main子过程。缺省情况下,创建的第一个窗体被指定为启动对象

16、,又称启动窗体。 如果启动对象要设为Sub Main子过程,Main子过程必须放在标准模块中,不能放在窗体模块中。在Main子过程中可以先加载其它信息,如数据文件,然后再根据数据文件的内容决定加载哪一个窗体。,8.3.1 单文档界面,改变启动对象,可以通过选择“工程”菜单中的“工程属性”子菜单,3有关窗体的语句和方法 加载窗体:Load (窗体装入内存,触发相应事件) 卸载窗体:Unload (从内存中释放) 显示窗体:.Show style Style:窗体显示模式, 0:无模式 1:模式 模式窗体:指该窗体一旦显示就不能与其它窗体互相切换,所有的操作只能针对该窗体;要操作其它窗体,必须关闭

17、该窗体。 无模式窗体:指该窗体显示后仍可以与其它窗体互相切换。 隐藏窗体:.Hide (没有从内存中释放),8.3.1 单文档界面,例8-8 编一应用程序,功能上要求一个主界面,一个输入学生5门课程成绩的窗体,一个显示平均分和总分的窗体。要求用户名、密码输入正确后才能进入使用。 实现思路:程序运行时,首先执行登陆界面,判断输入的用户名、密码是否正确,如果三次输入不正确,则结束程序;如果输入正确,则显示主界面。主界面可以用菜单或按钮显示输入成绩、计算和退出功能。初始化或当输入成绩窗体有一门课程成绩为空时,不能进行计算功能,计算菜单或按钮为无效状态。用模式窗体显示输入成绩窗体。计算平均分时,数据是

18、从输入成绩窗体中取得,因此输入成绩窗体不能从内存中释放。,8.3.1 单文档界面,程序代码,一个多文档界面应用程序中父窗体(MDI窗体)只能有一个,子窗体(Child,文档窗体)和普通窗体可有多个。 子窗体只能在父窗体内移动,用于显示各自的文档,且只能用无模式窗体显示。当子窗体最小化时,其图标显示在父窗体中而不是在任务栏中。 父窗体和子窗体可以有各自的菜单,但当子窗体加载时,子窗体的菜单将覆盖父窗体的菜单。 父窗体只能放置菜单和具有Align属性的控件,如图像(PictureBox)控件 ,或程序运行后不可视的控件,如定时器(Timer)控件、普通对话框(CommonDialog)控件等。,8

19、.3.2 多文档界面,1创建MDI窗体 三种方法: A.选择“工程”菜单的“添加MDI窗体”子菜单 B.选择工具栏的添加MDI窗体按钮 C.在工程资源管理窗口单击鼠标右键,在出现的快捷菜单中选择“添加”菜单中的“添加MDI窗体”菜单,8.3.2 多文档界面,常用属性,2创建子窗体 把普通窗体的MDIChild属性为True, 则该窗体即为MDI的子窗体。 3子窗体的交互 MDI窗体提供了ActiveForm、ActiveControl两个属性来处理子窗体的数据交互。 ActiveForm:表示当前活动的子窗体 ActiveControl:表示活动子窗体中当前拥有焦点的控件。 如果是对数据的复制

20、和粘贴等操作,还需要用到系统提供名为ClipBord的剪贴板对象。,8.3.2 多文档界面,Clipboard对象主要方法,8.3.2 多文档界面,SetText使用语法:ClipBord. SetText , GetText使用语法:ClipBord. GetText() 数据格式:用来指定字符串的数据格式。如果为文本格式,则可以缺省,或为1(vbCFText);如果为RTF格式,则为&HBF01(vbCFRTF)。 例如,把子窗体的文本框中所选的文本复制到剪贴板中的代码: ClipBord.SetText .AvtiveForm.ActiveControl.SelText 把剪贴板中的文本复制到子窗体的文本框中的代码: .AvtiveForm.ActiveControl.Text= ClipBord.GetText( ),例8-10 建立一个简单的多文档编辑器,每次使用“打开”菜单则打开一个子窗,子窗体只有一个文本框。编程实现子窗体文本框的数据可以复制和粘贴功能。 实现思路:利用动态创建窗体的方法通过“打开”菜单创建子窗体。在标准模块中创建把子窗体文本框中所选的文本字符串复制到剪贴板中的全局过程,以及创建把剪贴板中的文本字符串复制到子窗体文本框中的全局过程。,8.3.2 多文档界面,程序代码,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1