书签 分享 收藏 举报 版权申诉 / 109
上传文档赚钱

类型VB对话框与菜单程序设计课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4990754
  • 上传时间:2023-01-31
  • 格式:PPT
  • 页数:109
  • 大小:773KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《VB对话框与菜单程序设计课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    VB 对话框 菜单 程序设计 课件
    资源描述:

    1、VB对话框与菜单程序对话框与菜单程序设计设计对话框是一种特殊的对话框是一种特殊的“窗体,只有一个窗体,只有一个“关闭按钮,关闭按钮,不能最大化和最小化,大小一般不能改变。不能最大化和最小化,大小一般不能改变。一些应用程序中常常需要进展翻开和保存文件、选择颜色一些应用程序中常常需要进展翻开和保存文件、选择颜色和字体、打印等操作,这就需要应用程序提供相应的对和字体、打印等操作,这就需要应用程序提供相应的对话框以方便使用。这些对话框作为话框以方便使用。这些对话框作为Windows资源,资源,在在VB中已被做成中已被做成“公共对话框公共对话框(Common Dialog)控件。控件。8.1对话框设计对

    2、话框设计通用对话框通用对话框通用对话框是一种通用对话框是一种ActiveX控件控件,位于,位于“Microsoft Common Dialog Control 6.0部件部件中。中。8.1对话框设计对话框设计工程工程部件部件 设计时,通用对话框在窗体上显示成一个图设计时,通用对话框在窗体上显示成一个图标,可以在标,可以在“属性页里中进展属性设置,将其属性页里中进展属性设置,将其设置为不同类型,设置为不同类型,可以通过代码,使用可以通过代码,使用Action属性或属性或Show方法,将方法,将通用对话框设置成不同的具体对话框。通用对话框设置成不同的具体对话框。8.1对话框设计对话框设计8.1对话

    3、框设计对话框设计通过在代码中设置不同的通过在代码中设置不同的Action值可以产生不同的对话值可以产生不同的对话框。如果没有设置该属性默认值为框。如果没有设置该属性默认值为0,运行时通用对,运行时通用对话框不会产生任何信息,直到设置了该属性后才会出现话框不会产生任何信息,直到设置了该属性后才会出现相应的对话框。相应的对话框。8.1对话框设计对话框设计Action属性返回或设置被显示的对话框的类型:属性返回或设置被显示的对话框的类型:CommonDialogName.Action Value其中其中CommonDialogName为通用对话框控件的名字,为通用对话框控件的名字,Value值可以取

    4、值可以取16的整数,的整数,其含义如表示。其含义如表示。8.1对话框设计对话框设计注意:使用该控件所产生的对话框仅提供了人注意:使用该控件所产生的对话框仅提供了人-机信息机信息交互的界面,并不能实现真正的操作如翻开、另存、交互的界面,并不能实现真正的操作如翻开、另存、打印等,要想实现这些具体的操作必须进展相应的编打印等,要想实现这些具体的操作必须进展相应的编程。程。ShowX方法设置被显示的对话框的类型,其语方法设置被显示的对话框的类型,其语法格式为:法格式为:其中其中CommonDialogName为通用对话框控件的为通用对话框控件的名字。名字。ShowX方法参考表方法参考表8-1。8.1对

    5、话框设计对话框设计DialogTitle属性:产生的对话框的标题文字,如不属性:产生的对话框的标题文字,如不进展设置那么会使用默认的标题。进展设置那么会使用默认的标题。CancelError属性:在每个所产生的对话框上都有属性:在每个所产生的对话框上都有“取消按钮,该属性决定程序运行时,用户单击了取消按钮,该属性决定程序运行时,用户单击了“取消按钮后是否会产生出错信息。取消按钮后是否会产生出错信息。8.1对话框设计对话框设计该属性取该属性取True时,单击时,单击“取消按钮会产生一个错取消按钮会产生一个错误信息,同时自动将误信息,同时自动将Err对象的对象的Number属性值设置属性值设置为为

    6、32755。程序中可以通过代码来访问这个属性以判。程序中可以通过代码来访问这个属性以判断是否按下了断是否按下了“取消按钮,以决定程序的走向。取消按钮,以决定程序的走向。如果该属性值置为如果该属性值置为False默认,那么当单击默认,那么当单击“取取消按钮时,不会产生任何出错信息。消按钮时,不会产生任何出错信息。“翻开对话框充分利用了操作系统的功能,它翻开对话框充分利用了操作系统的功能,它可以遍历整个的磁盘目录构造,找到所需要的文可以遍历整个的磁盘目录构造,找到所需要的文件,并以件,并以“列表或列表或“详细资料的方式显示出来。详细资料的方式显示出来。文件对话框具有两种模式,即文件对话框具有两种模

    7、式,即Open和和Save(Save As),其中,其中Open模式可以使用户指定翻开的文件,模式可以使用户指定翻开的文件,Save模式可以使用户指定保存的文件。模式可以使用户指定保存的文件。1.文件对话框文件对话框 nAction属性:对话框类型取值属性:对话框类型取值1或或2nDefaultExt属性:对话框默认的文件扩展名属性:对话框默认的文件扩展名nDialogTitle属性:对话框标题栏的字符串属性:对话框标题栏的字符串1.文件对话框文件对话框 nFileName属性:文件名称属性:文件名称该属性值为字符串类型,用于设置或得到用该属性值为字符串类型,用于设置或得到用户所选定的文件名。

    8、即当程序执行时,用户户所选定的文件名。即当程序执行时,用户选定的某个文件名将显示在选定的某个文件名将显示在“文件名文本框文件名文本框中,同时此文件名及相关路径将以字符串的中,同时此文件名及相关路径将以字符串的形式赋值给形式赋值给FileName属性。属性。1.文件对话框文件对话框 nInitDir属性:初始路径属性:初始路径该属性用来指定该属性用来指定“翻开对话框中的初始目录。默认设翻开对话框中的初始目录。默认设置显示当前目录。初始路径在设计时或代码编写中均可置显示当前目录。初始路径在设计时或代码编写中均可进展设置。进展设置。n例:例:Cd1.InitDir=E:教材教材 将对话框的初始路径设

    9、为将对话框的初始路径设为E盘盘“教材文件夹教材文件夹1.文件对话框文件对话框 nFilter属性:文件类型属性:文件类型通过通过Filter属性在属性在“翻开对话框中设置文件的类翻开对话框中设置文件的类型。该属性的值是一个字符串,由一组或多组型。该属性的值是一个字符串,由一组或多组文件类型表达式构成,每组代表一类文件。构文件类型表达式构成,每组代表一类文件。构成规那么是:成规那么是:类型说明字符串类型说明字符串|类型通配表达式类型通配表达式|类型说明字符类型说明字符串串|类型通配表达式类型通配表达式1.文件对话框文件对话框 类型说明字符串为对文件类型的说明,类型通配表达式表示需显示的文件类型,

    10、各组之间用“|符号分开。1.文件对话框文件对话框 Object.FilterDescription1|Filter1|Description2|Filter2 nFilterIndes属性:过滤器索引属性:过滤器索引该属性用于表示用户在该属性用于表示用户在“文件类型列表框中文件类型列表框中选定的文件类型的序号。例如与图所示相对选定的文件类型的序号。例如与图所示相对应,应,Word文档的该属性值为文档的该属性值为1,文本文件的该,文本文件的该属性值为属性值为2。1.文件对话框文件对话框 设置适当属性,使对话框的标题为设置适当属性,使对话框的标题为“翻开文件,初翻开文件,初始目录为始目录为c c盘

    11、根目录;盘根目录;设置适当属性,使对话框的设置适当属性,使对话框的“文件类型下拉式组合文件类型下拉式组合框中有二行:框中有二行:“Word“Word文档、文档、“所有文件,默认的是所有文件,默认的是“所所有文件;有文件;编写命令按钮的事件过程,使得单击按钮可以弹出编写命令按钮的事件过程,使得单击按钮可以弹出“翻开文件对话框;翻开文件对话框;例:在窗体上画一个名称为例:在窗体上画一个名称为command1command1的命令按钮,标题为的命令按钮,标题为翻开文件翻开文件“,再画一个名称为,再画一个名称为CD1CD1的通用对话框。程序运行的通用对话框。程序运行后,假设单击命令按钮,那么弹出翻开文

    12、件对话框,并按以后,假设单击命令按钮,那么弹出翻开文件对话框,并按以下要求设置属性和代码:下要求设置属性和代码:思路:首先,条件、是在对话框属性窗口上配置参数,可在对话框属性窗口内填写“对话框标题、“初始化路径的相应内容;其次,过滤器的内容为:Word文档|*.doc|所有文件|*.*;且根据题意,过滤器索引值设为2;另,条件是指编写代码,调用通用对话框,可采用如下程序代码:cd1.action=1 或者 cd1.showopen 均可书本P232【例8.1】u建立一个命令按钮,用于翻开一个建立一个命令按钮,用于翻开一个Windows应用程序,如应用程序,如“计计算器、算器、“日历等。日历等。

    13、“另存为对话框为用户在存储文件时提供了一另存为对话框为用户在存储文件时提供了一个标准界面,供用户选择或键入所要存入文件的个标准界面,供用户选择或键入所要存入文件的路径及文件名。路径及文件名。“另存为对话框所涉及的属性与另存为对话框所涉及的属性与“翻开对话翻开对话框根本一样,只是多了一个框根本一样,只是多了一个DefaultExt属性,属性,该属性用来表示所存文件的默认扩展名。该属性用来表示所存文件的默认扩展名。2.另存为对话框另存为对话框 2.颜色对话框颜色对话框“颜色对话框中的调色板除了提供根本颜色颜色对话框中的调色板除了提供根本颜色外,还提供了自定义颜色,供用户调色。对外,还提供了自定义颜

    14、色,供用户调色。对用户来说,使用该对话框,可以获得非常直用户来说,使用该对话框,可以获得非常直观的效果。观的效果。Color属性属性:用来返回选定的用来返回选定的RGB颜色值。颜色值。2.颜色对话框颜色对话框 例如,用颜色对话框改变窗体的背风光例如,用颜色对话框改变窗体的背风光Private Sub Command2_Click()Commondialog1.CancelError=falseCommonDialog1.ShowColorForm1.BackColor=CommonDialog1.ColorEnd Sub “字体对话框用来设置并返回所用字体的名字、字体对话框用来设置并返回所用字

    15、体的名字、字形、大小、效果及颜色。使用字体对话框时,字形、大小、效果及颜色。使用字体对话框时,必须首先设置对话框的必须首先设置对话框的Flags属性,然后才能使用属性,然后才能使用ShowFont方法实际显示对话框。方法实际显示对话框。3.字体对话框字体对话框 Flags属性值可以设置为如下属性值可以设置为如下3种情况:种情况:cdlCFScreenFonts:屏幕字体。:屏幕字体。cdlCFPrinterFonts:打印机字体。:打印机字体。cdlCFBoth:可以是屏幕字体,也可以是打印:可以是屏幕字体,也可以是打印机字体。机字体。3.字体对话框字体对话框 书本P235【例8.4】例:例:

    16、Copys:设置或返回打印份数:设置或返回打印份数FromPage:打印起始页:打印起始页ToPage:打印终止页:打印终止页PrinterDefault:确定在打印对话框中的选择:确定在打印对话框中的选择是否用于改变系统默认的打印机设置。是否用于改变系统默认的打印机设置。4.打印对话框打印对话框8.2.1菜单设计概述菜单设计概述菜单提供了一种构造化的方式向使用应用程序菜单提供了一种构造化的方式向使用应用程序的用户提示可用的命令。的用户提示可用的命令。菜单是菜单是Windows应用程序中十分关键的要素之应用程序中十分关键的要素之一,以分组的形式组织多个命令或操作。一,以分组的形式组织多个命令或

    17、操作。8.2菜单设计菜单设计菜单设计概述菜单设计概述下拉式菜单下拉式菜单弹出式菜单弹出式菜单8.2菜单设计菜单设计下拉式菜单设计下拉式菜单设计u下拉式菜单是用户在任下拉式菜单是用户在任何时候都可以在顶端菜单何时候都可以在顶端菜单条上选择后拉出的菜单。条上选择后拉出的菜单。8.1菜单设计菜单设计下拉式菜单设计下拉式菜单设计在在Visual Basic中,把每个菜单项看成是一个中,把每个菜单项看成是一个控件。菜单控件只包含一个事件,即控件。菜单控件只包含一个事件,即Click事件。事件。下拉式菜单设计下拉式菜单设计主菜单名主菜单名快捷键快捷键热键热键子菜单标记子菜单标记主菜单条主菜单条分隔线分隔线

    18、菜单项菜单项子菜单名子菜单名8.2菜单设计菜单设计8.2.2下拉式菜单设计下拉式菜单设计下拉式菜单的设计通过菜单编辑器来完成。翻下拉式菜单的设计通过菜单编辑器来完成。翻开菜单编辑器的方法:开菜单编辑器的方法:“工具菜单工具菜单菜单编辑器菜单编辑器 组合键组合键“Ctrl+E 工具栏上的工具栏上的“菜单编辑器按钮菜单编辑器按钮 鼠标右键鼠标右键菜单编辑器菜单编辑器下拉式菜单设计下拉式菜单设计翻开翻开“菜单编辑器:菜单编辑器:“Tools菜单菜单 在在“工具栏上选择工具栏上选择“菜单编辑器按钮菜单编辑器按钮下拉式菜单设计下拉式菜单设计“菜单编辑器的使用:菜单编辑器的使用:菜单列表框菜单列表框菜单项

    19、属性菜单项属性 操作按钮操作按钮下拉式菜单设计下拉式菜单设计关于下拉式菜单的说明关于下拉式菜单的说明1Caption:菜单项标题。:菜单项标题。2Name:菜单项名称。当通过代码处理菜单项时需:菜单项名称。当通过代码处理菜单项时需要使用要使用Name属性。属性。3热键:热键:在菜单的在菜单的Caption属性中在某个字母前加上属性中在某个字母前加上“&符号就可以将该字母变为热键。当文件菜单展开符号就可以将该字母变为热键。当文件菜单展开时,同时按下时,同时按下Alt和和O就可以选择就可以选择“翻开菜单命令。翻开菜单命令。4ShortCut:快捷键,:快捷键,不用翻开不用翻开“文件菜单就可文件菜单

    20、就可以通过以通过Ctrl+O快捷键来选择快捷键来选择“翻开菜单命令。翻开菜单命令。“翻翻开菜单项的快捷键为开菜单项的快捷键为Ctrl+O。5分隔条:将菜单按功能进展分组。通过将分隔条:将菜单按功能进展分组。通过将Caption属性设置为属性设置为“-减号、连字符可以将菜单项设置为减号、连字符可以将菜单项设置为分隔条。分隔条。6有效有效(Enabled)检查框:当某个菜单项的颜色变为检查框:当某个菜单项的颜色变为灰色时表示该菜单项的功能被禁用。将菜单项的灰色时表示该菜单项的功能被禁用。将菜单项的Enabled属性设置为属性设置为False就可以禁用该菜单项。就可以禁用该菜单项。7可见可见(Vis

    21、ible)检查框:通过将菜单项的检查框:通过将菜单项的Visible属属性设置为性设置为False可以隐藏该菜单项,而要重新显示该菜可以隐藏该菜单项,而要重新显示该菜单项仅需将单项仅需将Visible属性重新设置为属性重新设置为True。8复选复选(Checked)检查框:通过将菜单项的检查框:通过将菜单项的Checked属性设置为属性设置为True可以在菜单项前显示复选标可以在菜单项前显示复选标志。志。1.利用菜单编辑器定义菜单项利用菜单编辑器定义菜单项 例:为电子标题板增加一个下拉式菜单,利用菜单控制标题板的内容、字号、字体风格等。设计菜单项:例:使用菜单控件数组:n简化编程,用一段代码处

    22、理多个菜单项弹出式菜单独立于菜单栏而显示在窗体的浮动菜单弹出式菜单独立于菜单栏而显示在窗体的浮动菜单,操作时使用右键。,操作时使用右键。在弹出式菜单上显示的在弹出式菜单上显示的内容与鼠标位置有关内容与鼠标位置有关。8.2.3弹出式菜单设计弹出式菜单设计 与一般菜单的设计相似,弹出式菜单通过菜与一般菜单的设计相似,弹出式菜单通过菜单编辑器建立。不同的是菜单名的单编辑器建立。不同的是菜单名的 Visible属性属性设置为设置为False,或者在菜单编辑器中不选中,或者在菜单编辑器中不选中“可见可见复选框。复选框。8.2.3弹出式菜单设计弹出式菜单设计语法格式:窗体名.PopupMenu 菜单名,f

    23、lags,x,y说明:省略窗体名,将翻开当前窗体的菜单;菜单名是通过菜单编辑器设计的菜单的名称Flags参数为一些常量数值的设置,包含位置常数和行为常数,表示弹出的位置和触发的键位置。8.2.3弹出式菜单设计弹出式菜单设计内部常数内部常数位置常数位置常数说明说明vbPopupMenuLeftAlign0(默认默认)弹出菜单的左上角位于弹出菜单的左上角位于XvbPopupMenuCenterAlign4弹出菜单上框中央位于弹出菜单上框中央位于XvbPopupMenuRightAlign8弹出菜单的右上角位于弹出菜单的右上角位于X8.2.3弹出式菜单设计弹出式菜单设计内部常数内部常数行为常数行为常

    24、数说明说明vbPopupMenuLeftButton0(默认默认)菜单只接受右键单击菜单只接受右键单击vbPopupMenuRightButton2菜单接受左、右键单击菜单接受左、右键单击两个常数可以相加或者以两个常数可以相加或者以or相连相连 8.2.3弹出式菜单设计弹出式菜单设计50例为窗体设计一个弹出式菜单,用于设置窗体例为窗体设计一个弹出式菜单,用于设置窗体背景颜色。背景颜色。51例例 在窗体上添加一个文本框,通过下拉菜单实在窗体上添加一个文本框,通过下拉菜单实现复制、粘贴功能现复制、粘贴功能 点击“右键显示菜单项的时候,应先判断文本框中是否有文本被选中,确定哪些菜单项可用。If Te

    25、xt1.SelLength 0 Then mnuEditCut.Enabled=True mnuEditCopy.Enabled=True Else mnuEditCut.Enabled=False mnuEditCopy.Enabled=False1剪贴板对象Clipboard 剪贴板是内存的一局部区域,所有应用程序都能使用剪贴板中的信息。在VB中,所有与剪贴板有关的操作是通过剪贴板对象实现的。剪贴板对象是用于暂时保存图形和文本的一种特殊的控件,它是VB中预先定义好的控件组。剪贴板对象没有任何属性和事件,但通过它的一些方法可以提供对系统剪贴板的访问即发送和接收数据。剪贴板对象的方法Clipb

    26、oard.Clear 将剪贴板清空 将选中的字符串复制到剪贴板Clipboard.SetData Data,Format 将非文本数据复制到剪贴板上Clipboard.GetText 将剪贴板上的字符串发送到光标所在位置Clipboard.GetData 将剪贴板上的非文本数据发送到光标所在位置Private Sub mnuEditCut_Click()If Text1.SelLength 0 Then Text1.SelText=同时要让粘贴菜单项有效 mnuEditPaste.Enabled=True End IfEnd Sub 表示文本框中选定的文本 表示文本框中选定文本的长度Priva

    27、te Sub mnuEditCopy_Click()If Text1.SelLength 0 Then mnuEditPaste.Enabled=True End IfEnd Sub 复制与剪切的区别是Text1.SelText=同时要让粘贴菜单项有效Private Sub mnuEditPaste_Click()If Len(Clipboard.GetText)0 Then End IfEnd Sub注意:Text1.SelText=Clipboard.GetText 和 Text1.Text=Clipboard.GetText的区别 在光标所在位置处插入剪贴板上的数据Private Sub

    28、 mnuEditSel_Click()If mnuEditSel.Checked=False Then mnuEditSel.Checked=True Text1.SelStart=0 Text1.SelLength=Len(Text1.Text)Else mnuEditSel.Checked=False Text1.SelLength=0 End IfEnd SubText1.Text:表示文本框中的文本Text1.SelText:表示文本框中选定的文本Text1.SelLength:表示文本框中选定文本的长度Text1.SelStart:表示文本框中选定文本的开场位置综合实例:综合实例:参

    29、照参照WINDOWS的记事本程序,建立一个有的记事本程序,建立一个有菜单功能的文本编辑器菜单功能的文本编辑器8.3 MDI窗体 MDI窗体允许创立在单个容器窗体中包含多个窗体允许创立在单个容器窗体中包含多个窗体的应用程序,允许用户同时显示多个文档,每个窗体的应用程序,允许用户同时显示多个文档,每个文档显示在它自己的窗体中。文档显示在它自己的窗体中。MDI窗体是有父子关窗体是有父子关系的窗体,可以根据窗体作用的不同,来确定窗体是系的窗体,可以根据窗体作用的不同,来确定窗体是父窗体还是子窗体。文档或子窗体被包含在父窗体中父窗体还是子窗体。文档或子窗体被包含在父窗体中,父窗体为应用程序中所有的子窗体

    30、提供工作空间,父窗体为应用程序中所有的子窗体提供工作空间,用户在父窗体完成几乎所有的工作。用户在父窗体完成几乎所有的工作。8.3 MDI窗体例:例:Microsoft Excel 允许创立并显示不同样式的多文允许创立并显示不同样式的多文档窗体,每个子窗体都被限制在档窗体,每个子窗体都被限制在 Excel 父窗体的区域父窗体的区域之内。当最小化之内。当最小化 Excel父窗体时,所有的文档窗体都父窗体时,所有的文档窗体都被最小化,只有父窗体的图标显示在任务栏中。当关被最小化,只有父窗体的图标显示在任务栏中。当关闭闭Excel父窗体时,所有的文档窗体都被关闭,但关父窗体时,所有的文档窗体都被关闭,

    31、但关闭某个文档窗口时,闭某个文档窗口时,Excel父窗体不会被关闭。父窗体不会被关闭。8.3 MDI窗体 具体什么时候选用单窗体程序,什么时候使用多重窗体具体什么时候选用单窗体程序,什么时候使用多重窗体或或MDI窗体呢?这需要根据应用程序的目的,来决定使用哪窗体呢?这需要根据应用程序的目的,来决定使用哪种界面样式最好。种界面样式最好。例:例:日历程序最好设成单窗体程序,因为没有必要同时翻开一个日历程序最好设成单窗体程序,因为没有必要同时翻开一个以上日历;以上日历;8.3 MDI窗体 一个处理保险索赔的应用程序可能要设计成MDI窗体,使用多文档界面样式,因为一个职员很可能会同时处理一个以上索赔,

    32、或者需要对两个索赔进展比较;一个管理信息系统MIS系统,需要完成的功能比较多,比方最根本的功能添加、修改、删除和查询记录等,这些功能的实现都需要窗体界面,而这些窗体一般都是并列使用,所以像学生成绩管理系统这样的应用程序,一般设计成多重窗体程序。8.3 MDI窗体8.3 MDI窗体程序设计1 MDI窗体特性2 创立MDI应用程序 3 MDI窗体及子窗体4 MDI窗体的菜单 MDI窗体程序由父窗口和子窗口组成窗体程序由父窗口和子窗口组成,父窗口又称为,父窗口又称为MDI窗体,它被作为子窗窗体,它被作为子窗口的容器。子窗口又称为文档窗口,它用于口的容器。子窗口又称为文档窗口,它用于显示各个文档,所有

    33、的子窗口都具有一样的显示各个文档,所有的子窗口都具有一样的功能。功能。1 MDI窗体特性 在运行时,MDI 窗体及其所有的子窗体都呈现特定的性质:1所有子窗体均显示在 MDI 窗体的工作空间内。像其它的窗体一样,用户能移动子窗体和改变子窗体的大小,不过,它们被限制于这一工作空间内。1 MDI窗体特性 在运行时,MDI 窗体及其所有的子窗体都呈现特定的性质:2当最小化一个子窗体时,它的图标将显示于 MDI 窗体上而不是在任务栏中。当最小化 MDI 窗体时,此 MDI 窗体及其所有子窗体将由一个图标来代表。当复原 MDI 窗体时,MDI 窗体及其所有子窗体将按最小化之前的状态显示出来。3当最大化一

    34、个子窗体时,它的标题会与 MDI 窗体的标题组合在一起并显示于 MDI 窗体的标题栏上。4通过设定 AutoShowChildren 属性,子窗体可以在窗体加载时自动显示(True)或自动隐藏(False)。1 MDI窗体特性5活动子窗体的菜单假设有将显示在 MDI 窗体的菜单栏中,而不是显示在子窗体中。MDI 窗体程序在所谓的“以文档为中心的应用中特别有用,在这种应用程序中,通常同时使用多个窗口来显示或编辑文档。1 MDI窗体特性2 创立MDI应用程序 前面已经学习过,可以通过“添加窗体对话框添加窗体,但这不是MDI窗体,只是多个普通窗体而已。如果创立一个MDI窗体应用程序,可以按以下步骤执

    35、行:1在“工程菜单中单击“添加MDI窗体菜单项,可以创立MDI应用程序的父窗体。2 创立MDI应用程序注意,一个应用程序只能有一个 MDI 窗体,如果工程已经有了一个 MDI窗体,那么该“工程菜单上的“添加 MDI 窗体命令就不可使用。MDI应用程序的父窗体是子窗体的容器,在该窗体中可以有菜单栏、工具栏、状态栏等,但不可以有文本框等控件。菜单栏、工具栏的建立我们在后面几节中介绍。2如果要创立子窗体,首先在“工程菜单中单击“添加窗体菜单项,创立一个普通的窗体,然后将该窗体的 MDIChild 属性设为True。一个应用程序可以包含许多相似或者不同样式的 MDI 子窗体,假设要建立多个子窗体,那么

    36、重复上述操作就可以了。2 创立MDI应用程序 创立以文档为中心的应用程序,一般要求在运行时能提供假设干子窗体以存取不同的文档,而在设计时事先创立好假设干个子窗体的方法是不可取的。一般是先创立一个子窗体作为这个应用程序文档的模板,然后通过对象变量来实现。2 创立MDI应用程序例 假设已经建立了一个名称为“frmMDIChild的子窗体模板,那么使用下面的语句:Dim NewDoc As New frmMDIChild 就会为“frmMDIChild建立一个新的实例NewDoc,新实例具有与“frmMDIChild窗体一样的属性、控件和代码。2 创立MDI应用程序 在运行时,子窗体显示在 MDI

    37、父窗体工作空间之内其区域在父窗体边框以内及标题与菜单栏之下。在设计时,子窗体不是限制在 MDI 窗体区域之内,可以添加控件、设置属性、编写代码以及设计子窗体功能,就像在其它 Visual Basic 窗体中做的那样。2 创立MDI应用程序通过查看 MDIChild 属性或者检查工程资源管理器,可以确定窗体是否是一个 MDI 子窗体。Visual Basic 在“工程资源管理器中为 MDI 窗体与 MDI 子窗体显示了特定的图标,如以下图所示。2 创立MDI应用程序“工程资源管理器中的MDI 窗体、MDI 子窗体和标准窗体例3 MDI窗体及子窗体1加载MDI窗体及子窗体 加载子窗体时,其父窗体M

    38、DI 窗体会自动加载并显示。而加载 MDI 窗体时,其子窗体并不会自动加载。子窗体是缺省的启动窗体,因而在程序运行时,子窗体和 MDI 窗体两者都会加载。MDI 窗体有AutoShowChildren 属性,决定是否自动显示子窗体。如果该属性被设置为True,那么当改变子窗体的属性如Caption等后,会自动显示该子窗体,不再需要使用Show 方法;3 MDI窗体及子窗体 如果设置该属性为False,那么改变子窗体的属性值后,不会自动显示该子窗体,子窗体处于隐藏状态,直至用Show 方法把它们显示出来。这就允许在子窗体变成可见之前更新标题、位置和菜单等各种细节。3 MDI窗体及子窗体2设置子窗

    39、体的大小和位置 如果 MDI 子窗体具有大小可变的边框即 BorderStyle=2,在其加载时,Windows 将决定其初始的高度、宽度和位置。边框大小可变的子窗体,其初始大小与位置取决于 MDI 窗体的大小,而不是设计时子窗体的大小。当 MDI 子窗体的边框大小不可变即 BorderStyle=0、1 或3时,那么它将用设计时的 Height 和 Width 属性被载入。3 MDI窗体及子窗体2设置子窗体的大小和位置 如果设置 AutoShowChildren 为 False,那么在 MDI 子窗体载入以后,把它设为可见状态之前,可以改变其大小和位置。3 MDI窗体及子窗体 定位窗体的代码

    40、最好放在窗体的窗体的Load过程中,这样会在窗体实际出现在屏幕上之前将窗体位置确定。要将窗体居中,需要在窗体的Load过程中简单地添加代码来计算并指定窗体左上角的位置3 MDI窗体及子窗体如以下代码所示:Me.Left=(Screen.Width-Me.Width)/2 Me.Top=(Screen.Height-Me.Height)/2 利用坐标系统可以将窗体定位于屏幕或MDI窗体的任意位置。3 MDI窗体及子窗体3MDI窗体程序子窗体的排列顺序和方式 在MDI应用程序中,缺省状态下子窗体是按照窗口翻开的顺序排列的:当前活动窗体排在最前端,最先翻开的窗体排在最底端。我们可以借助ZOrder方

    41、法动态地改变子窗体的排列顺序。3 MDI窗体及子窗体3MDI窗体程序子窗体的排列顺序和方式 ZOrder方法的语法为:窗体名称.ZOrder Position 其中,Position取值为0时表示对象移至最前端,为1时表示对象移至最底端,缺省时值为0。3 MDI窗体及子窗体3MDI窗体程序子窗体的排列顺序和方式 例如,某一MDI应用程序有三个子窗体:Form1、Form2和Form3,假设要将Form3移至最底端,那么可在设计代码时加上 Form3.Zorder 1 即可。3 MDI窗体及子窗体 利用Zorder方法我们也可以创立浮动窗体,浮动窗体总是浮动到外表,也就是说它可以被其他窗体覆盖,

    42、但马上自动变成当前窗口并显示在所有窗体的最上层。3 MDI窗体及子窗体 要创立浮动窗体,需要在窗体上添加一个定时器控件,并将它的Interval属性设置为想让窗体浮现的时间,如500毫秒。在Timer1_Timer事件过程中编写如下代码,便可以使用Zorder方法使窗体浮动到顶部:Private Sub Timer1_Timer()Zorder End Sub3 MDI窗体及子窗体 使用过Word的用户都知道,Word可同时翻开多个文档,并能以不同方式对文档窗口进展排列,如平铺、层叠等。这种重新排列子窗体的功能,在MDI应用程序中是可以通过编程来实现的。具体方法就是在相应的菜单控件的Click

    43、事件中调用Arrange 方法,使用 Arrange 方法可以重新对齐子窗体,可以层叠、水平平铺或者沿着 MDI 窗体的下部排列子窗体图标等方式来显示子窗体。3 MDI窗体及子窗体Arrange 方法的语法为:MDI窗体对象.Arrange Arrangement 其中,Arrangement用来指定如何排列MDI应用程序的子窗体,其值可以是常数或是数值,Arrangement的取值如下表所示。3 MDI窗体及子窗体表 Arrangement的取值常数值描述vbCascade0层叠所有非最小化MDI子窗体vbTileHorizontal1水平平铺所有非最小化MDI子窗体vbTileVertic

    44、al2垂直平铺所有非最小化MDI子窗体vbArrangeIcons3重排最小化MDI子窗体的图标3 MDI窗体及子窗体 例如:假设“平铺菜单项名为mnuHorizon,可编写如下代码,实现子窗体的平铺:Private Sub mnuHorizon_Click()MDIForm1.Arrange vbTileHorizontal MDIForm1为MDI窗体名称 End Sub 3 MDI窗体及子窗体 当平铺或者层叠有着固定边框类型的子窗体时,每个子窗体都像具有可变尺寸边框那样被定位,这使得子窗体可能重叠可能重叠。即使MDI窗体被最小化,仍可以重新排列窗口和图标,当MDI窗体最大化时,可以看到重

    45、排的结果。3 MDI窗体及子窗体4维护子窗体的状态信息 当子窗体被卸载时,其中的内容也会随之消失,所以在用户决定退出 MDI 应用程序时,必须有保存信息的时机,让用户执行存盘操作,这样才能确保数据不会丧失。当数据没有改变而去存盘是没有意义的,因此,应用程序必须随时都能确定自上次保存以来子窗体中的数据是否有改变。4维护子窗体的状态信息 可以通过在每个子窗体中声明一个公用变量来实现此功能,例如:Public DataChangeed As Boolean 当子窗体中的内容改变时,可将此变量设为True。在保存完数据后,再设为False。在MDI应用程序中,在关闭应用程序时,Visual Basic

    46、 将试图卸载 MDI 窗体,当 MDI 窗体被卸载时,QueryUnload 事件首先为 MDI 窗体调用,然后再为每一个翻开的子窗体调用。如果在这些 QueryUnload 事件过程中没有代码,那么取消 Unload 事件,然后,每一个子窗体被卸载,最后MDI 窗体被卸载。4维护子窗体的状态信息 由于 QueryUnload 事件在窗体卸载之前被调用,因此在窗体卸载前可以给用户一个保存窗体、文件和一些数据的时机。我们可以在该事件过程中,判断前面声明的那个公用变量标志,然后提示用户是否执行保存操作,也可以在窗体的卸载事件Unload中判断此变量标志,这样,在MDI应用程序退出时就不会丧失数据了

    47、。4维护子窗体的状态信息4 MDI窗体的菜单 MDI 应用程序的菜单设计与一般应用程序的菜单设计方法一致,可利用【菜单编辑器】来完成,但MDI 应用程序的菜单还有其特殊性。在 MDI 应用程序中,每一个子窗体的菜单都显示在 MDI 窗体上,而不是在子窗体本身。当子窗体有焦点时,该子窗体的菜单如果有的话就代替菜单栏上的 MDI 窗体的菜单。如果没有可见的子窗体,或者带有焦点的子窗体没有菜单,那么显示 MDI 窗体的菜单。4 MDI窗体的菜单 MDI 应用程序使用几套菜单的情况很普遍。当翻开一个文档时,应用程序显示与该类文档相关的菜单。通常,当没有可见子窗体时,会显示一个不同的菜单。例如,当没有文

    48、件翻开时,Microsoft Excel 只显示“文件与“帮助菜单。当用户翻开一个文件时,其他菜单就会显示出来,如“文件、“编辑、“视图、“插入、“格式、“工具和“窗口等。管理 MDI 应用程序中菜单的一个方法是把希望在任何时候都显示的菜单控件放在 MDI 窗体上,当运行该应用程序时,如果没有可见的子窗体,会自动显示 MDI 窗体菜单。把应用于子窗体的菜单控件放置到子窗体中,在运行时,只要有一个子窗体可见,这些菜单标题就会显示在 MDI 窗体的菜单栏中。4 MDI窗体的菜单 虽然子窗体的菜单可替代主窗体的菜单,但在编写菜单命令的响应事件的处理时却不一样。在Visual Basic中,只能在本窗

    49、体内响应菜单命令,因此主菜单的命令处理只能在主窗体模块中进展,而子窗体的命令处理只能在子窗体模块中进展。即使子窗体的菜单显示在主窗体的菜单位置,但它还是子窗体的菜单。4 MDI窗体的菜单 有些应用程序支持多种类型的文档。例如,在 Microsoft Access 中,可以翻开表格、查询、窗体和其它文档类型。要在 Visual Basic 中创立这样的应用程序,应使用两个子窗体。设计一个带有执行工作单任务菜单的子窗体和另一个带有完成图表任务菜单的子窗体。在运行时,当工作单窗体的实例有焦点时,那么显示工作单菜单,而中选取图表时,那么显示图表窗体的菜单。如果所有的工作单和图表都关闭,那么显示 MDI 窗体的菜单。4 MDI窗体的菜单大多数 MDI 应用程序的菜单栏中都有“窗口这一特殊菜单项,这是一个显示所有翻开的子窗体标题的特殊菜单,如以下图所示。另外,有些应用程序将操纵子窗体的命令,比方“层叠、“平铺与“排列图标,也放在这个菜单中。4 MDI窗体的菜单4 MDI窗体的菜单Thank You世界触手可及世界触手可及携手共进,齐创精品工程携手共进,齐创精品工程

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:VB对话框与菜单程序设计课件.ppt
    链接地址:https://www.163wenku.com/p-4990754.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库