Visual Basic 程序设计教程第4章_第1页
Visual Basic 程序设计教程第4章_第2页
Visual Basic 程序设计教程第4章_第3页
Visual Basic 程序设计教程第4章_第4页
Visual Basic 程序设计教程第4章_第5页
已阅读5页,还剩159页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章用户界面设计4.1界面设计概述4.2菜单设计

4.2.1菜单的基本结构

4.2.2创建下拉式菜单

4.2.3创建弹出式菜单

4.2.4在菜单中添加文件列表4.3工具栏设计

4.3.1向工具箱加入ToolBar控件

4.3.2向窗体上添加ToolBar控件

4.3.3ImageList控件的使用

4.3.4将ImageList和ToolBar控件相关联

4.3.5利用ToolBar控件创建快捷按钮

4.3.6ToolBar控件常用的事件和方法4.4状态栏设计4.5对话框设计

4.5.1使用函数生成对话框

4.5.2通用对话框

4.5.3自定义对话框4.6多文档界面设计返回第4章用户界面设计

本章目的:通过本章学习了解和掌握有关VB界面的基本设计方法。本章的重点是菜单、工具栏、状态栏、对话框的设计方法。难点是多文档界面的设计。4.1界面设计概述用户界面是应用程序的一个最重要的组成部分。在开发应用程序时,第一步要创建一个美观、易用的界面,它是用户与应用程序进行交互的可视部分。界面设计的一个重要原则就是一致性,包括窗体图标的一致性和色彩搭配的一致性,以及窗体大小的一致性等等。界面设计的另一个重要原则就是简单化。4.2菜单设计

菜单分为两种,即下拉式菜单和弹出式菜单。

4.2.1菜单的基本结构1.下拉式菜单的结构菜单的基本结构包括:菜单栏、菜单标题、一级菜单、子菜单。在菜单中包含的界面元素有:菜单项、快捷键、赋值访问键、分隔条、子菜单提示符等,如图所示。VisualBasic最多只允许有5层子菜单。4.2.1菜单的基本结构4.2.1菜单的基本结构2.弹出式菜单弹出式菜单是在Windows中常用的浮动式菜单。该类菜单不是固定在窗体的上部,而是使用鼠标右键触发,定位于鼠标所在的位置。弹出式菜单又可称为上下文菜单或快捷菜单。

4.2.2创建下拉式菜单菜单编辑器是菜单设计的基本工具,使用“菜单编辑器”可以为应用程序创建自定义菜单并定义其属性。4.2.2创建下拉式菜单1.菜单编辑器的使用打开方法:(1)“工具”→“菜单编辑器”(2)单击工具栏中的“菜单编辑器”按钮。(3)在窗体中单击右键,在弹出的快捷菜单中(如图所示)选择“菜单编辑器”菜单项。4.2.2创建下拉式菜单打开后的菜单编辑器窗口如图所示4.2.2创建下拉式菜单

“标题”输入框用来输入用户建立的菜单的名称。

“名称”输入框输入各菜单标题及菜单项的控制名。控制名以“mnu”作为前缀。控制名用来在代码编辑时,代表菜单标题或菜单项。

“索引”输入框用来建立控件数组下标。

“快捷键”列表框列出可供用户选择的快捷键。

4.2.2创建下拉式菜单

“帮助上下文ID”输入框用户通过输入数字来选择帮助文件中特定的页数或与该菜单上下文相关的帮助文件。

“协调位置”列表框用户通过这一列表框来确定菜单是否出现或怎样出现。

“复选”框用户可以设置某一菜单项是否可选。4.2.2创建下拉式菜单“有效”框

“有效”框用来设置该菜单是否可执行。如果不选中,这一菜单是无效的,不能被访问,呈灰色显示。

“可见”框“可见”框用来决定菜单和菜单项是否可见

“显示窗口列表”框“显示窗口列表”框可设置在使用多文档应用程序时,是否使菜单控件中有一个包含当前打开的多文档文件子窗口的列表框。4.2.2创建下拉式菜单箭头按钮

上下箭头按钮可将选中的菜单项向上或向下移动一位,可以改变菜单中各菜单项的顺序。

左右箭头按钮用于将菜单项向左或向右缩进四格距离。

菜单项向右缩进四格距离,表示其为子菜单

“下一个”按钮用于移到下一个选择项。“插入”按钮用于插入菜单项。

“删除”按钮用于删除某菜单名或菜单项。

4.2.2创建下拉式菜单在“菜单编辑器”窗口的下部是一个空白列表框,称为菜单控件列表框,可以列出用户为窗体设计的全部菜单标题和菜单项。

菜单标题和菜单下的菜单项也都是控件,菜单控件只包含一个事件即Click事件。2.在菜单编辑器中创建菜单的方法以下图所示的菜单为例

4.2.2创建下拉式菜单4.2.2创建下拉式菜单(1)选取要添加菜单的窗体。(2)从“工具”菜单中,选择“菜单编辑器”命令或者单击标准工具栏上的“菜单编辑器”按钮,显示菜单编辑器窗口。(3)在“标题”文本框中,输入“文件&F”。菜单标题文本会显示在菜单控件列表框中。(4)在“名称”文本框中,输入菜单的控制名mnufile,该名字将用在代码中引用该菜单控件。4.2.2创建下拉式菜单(5)单击向左或向右箭头按钮,可以改变该控件的缩进级。即为菜单创建菜单项,如本例中的新建、打开、关闭、保存菜单项等。在菜单编辑器中,每一缩进级都使用4个点“••••”表示。如图所示。

4.2.2创建下拉式菜单4.2.2创建下拉式菜单(6)单击“下一个”按钮可以再建一个菜单控件。也可单击“插入”按钮,在现有的控件之间增加一个菜单控件,即在本例中创建编辑、格式和帮助菜单和菜单项。也可以单击向上或向下的箭头按钮,在现有的菜单控件之中移动控件,改变它们之间的相对位置。(7)如果窗体所有的菜单控件都已创建,菜单编辑器下部的列表框列出了当前窗体的所有菜单控件,单击“确定”按钮可关闭菜单编辑器。

4.2.2创建下拉式菜单位于列表框中左侧平齐的菜单控件作为主菜单显示在菜单栏中。列表框中缩进过的菜单控件,需单击其主菜单标题时,才能在菜单上显示。一个缩进过的菜单控件,后面紧跟再次缩进过的菜单控件,它作为一个子菜单显示。在子菜单下缩进的各个菜单控件,作为该子菜单的菜单项显示。

3.分隔菜单项

如图所示的“文件”菜单就被分隔线分成三组。4.2.2创建下拉式菜单创建分隔线的具体方法如下:(1)若菜单中已有菜单项,应选择“插入”按钮,在想要分隔开来的菜单项之间插入一个菜单控件。(2)在“标题”文本框中键入一个连字符“-”。(3)在“名称”文本框中输入该菜单控件的名字。(4)单击“确定”按钮,关闭菜单编辑器。4.设置访问键和快捷键访问键用于在鼠标失效时,为用户操4.2.2创建下拉式菜单作菜单提供的按键选择。即使鼠标工作正常,用户也可以通过访问键用键盘操作。使用访问键时,要同时按下<Alt>键和该字母键。访问键的设置是在菜单编辑器的菜单控件列表框中选择要赋值访问键的菜单项。在“标题”框中,在要作为访问键字符的前面直接键入一个&符号,该符号后的字母为该菜单的访问键。运行时,菜单的访问键显示时带有下划线。4.2.2创建下拉式菜单快捷键为键盘上的功能键或它们与其他字母键的组合。有了快捷键,可以在不操作菜单项的情况下,直接通过快捷键执行相应的命令。菜单项快捷键的设置可直接在该菜单项的属性窗口选择,也可以在“菜单编辑器”的“快捷键”下拉列表框中选择,如下图所示。如果不需要快捷键,应选择列表顶部的“None”选项。

5.创建子菜单使用菜单编辑器创建的每个菜单最多可以包含5级子菜单。子菜单控件可以包括子菜单项分隔线和子菜单标题。菜单项“颜色”有子菜单“前景色”和“背景色”,它们在菜单编辑器列表框中显示如下图所示。

4.2.2创建下拉式菜单在菜单编辑器中创建子菜单方法如下:(1)创建想作为子菜单标题的菜单项“颜色”。(2)再创建将出现在子菜单中的各个项“前景色”和“背景色”。(3)然后单击向右箭头按钮将它们缩进。

4.2.2创建下拉式菜单菜单的每一个菜单项都可以看作是一个控件,而且只有一个可触发的事件,就是Click事件。可以在菜单的Click事件过程中输入程序代码。4.2.3创建弹出式菜单弹出式菜单是独立于窗体菜单栏而显示于窗体任何位置的浮动菜单。弹出式菜单的显示取决于按下鼠标右键时指针所处的位置。4.2.3创建弹出式菜单将“编辑”菜单下的菜单项作为一个弹出式菜单,运行后用户在窗体上任意位置单击鼠标右键,就会弹出一个弹出式菜单,菜单内容是“编辑”菜单下的菜单项如下图所示。4.2.3创建弹出式菜单(1)在“菜单编辑器”建立一个将要作为弹出式菜单的主菜单项。如本例中的“编辑”主菜单项,该主菜单项的标题(Caption属性)为“编辑(&E)”,名称(Name属性)为EDIT,所包含的菜单项为“剪切”、“复制”、“粘贴”。建好弹出式菜单所需的菜单后,可以把“编辑”的Visible属性设置为False,也可以为True。(2)为建立好的弹出式菜单编写程序代码。在代码窗口中选择Form对象,再在过程列表框中选择MouseUp,则出现Form_MouseUp事件过程的模板。4.2.3创建弹出式菜单PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

EndSub在事件过程模板中添加下列代码:IfButton=2Then′检查是否单击鼠标右键

PopupMenuEDIT′EDIT是“编辑”菜单的控制名,将其激活显示在窗体上EndIf对于上例,利用窗体的MouseUp事件4.2.3创建弹出式菜单在窗体中单击鼠标右键时,上述代码可将控制名为EDIT弹出式菜单激活显示在鼠标所在处。要显示弹出式菜单,可使用PopupMenu方法。PopupMenu方法的语法是:[object.]PopupMenumenuname[,flags[,x[,y[,boldcommand]]]] object:窗口名称表达式。Menuname:为所要显示的弹出式菜单名(本例编辑菜单名为EDIT)。4.2.3创建弹出式菜单Flags:一个数值或常数,按照下列设置中的描述,用以指定弹出式菜单的位置和行为,如下面两个表所示。

位置常数值描述VbPopupMenuLeftAlign0缺省。指定的X位置定义了弹出式菜单的左边界VbPopupMenuCenterAlign4弹出式菜单以指定的X位置为中心VbPopupMenuRightAlign8指定的X位置定义了弹出式菜单的右边界4.2.3创建弹出式菜单行为常数值描述VbPopupMenuLeftButton0缺省。仅当使用鼠标左键时,弹出式菜单中的项目才响应鼠标单击VbPopupMenuRightButton2不论使用鼠标左键还是右键,弹出式菜单中的项目都响应鼠标单击4.2.3创建弹出式菜单X,Y:指定显示弹出式菜单的X,Y坐标。如果该参数省略,则使用鼠标的坐标。Boldcommand:指定弹出式菜单中的菜单控件的名字,用以显示其黑体正文标题。如果该参数省略,则弹出式菜单中没有以黑体字出现的控件。要创建一个不显示在菜单栏里的菜单,可在设计时使该菜单项目为不可见(在菜单编辑器中消除“可见”复选框)。4.2.4在菜单中添加文件列表当打开一个新的文件,将在“文件”菜单的最下面增加一个新的菜单项,该菜单项的标题就是所打开文件的文件名。实现这样的功能,要用到菜单控件数组。菜单控件数组,与普通数组没有本质的区别,只是数组中的元素是菜单控件,而不是其他类型的数据。菜单控件数组中的每一个元素都由唯一的索引值来标识,索引值由Index属性确定。Index属性值可以在菜单编辑器的“索引”文本框中指定。4.2.4在菜单中添加文件列表当菜单控件数组的某一元素识别Click事件时,系统将其索引值作为参数传给Click事件过程。Click事件过程根据传进来的索引值判断选中的是哪个菜单项。设计时创建菜单控件数组如下图所示,创建菜单控件数组方法如下:4.2.4在菜单中添加文件列表(1)在“工具”菜单中选择“菜单编辑器”选项或单击工具栏上的“菜单编辑器”按钮,显示菜单编辑器窗口。(2)在“文件”菜单的退出前加入一个分隔线,将其Visible属性设置为False,该分割线作为菜单数组的第一个元素,它的名称(Name属性)mnufile是菜单数组名,索引为0。(3)在同一缩进级上创建第二个菜单项,并将第二个菜单项的名称设为与第一个菜单项相同,索引值为1。4.2.4在菜单中添加文件列表(4)依次建立菜单数组的其他项,标题分别为file1、file2、file3、file4,索引分别为1、2、3、4,这些数组菜单项的Visible属性均为False,表示可以显示4个最近打开的文件名。4.3工具栏设计在VisualBasic中,可以用ToolBar控件和ImageList控件创建工具栏。ToolBar控件有一个重要属性就是Button属性,该属性是指向一个或多个Button对象的集合。通过将Button对象添加到Buttons集合中,就可以创建工具栏。用ToolBar控件和ImageList控件创建工具栏的基本步骤:

4.3工具栏设计(1)向工具箱中添加ToolBar控件;(2)向窗体上添加ToolBar控件;(3)用ImageList控件保存要使用的图像;(4)将ToolBar控件与ImageList控件相关联;(5)创建工具栏快捷按钮,即Button对象;(6)编写ButtonClick事件过程;创建工具栏详细方法如下:

4.3.1向工具箱加入ToolBar控件ToolBar控件属于系统扩充的ActiveX控件。使用时必须将其加入工具箱中,步骤如下:(1)在“工程”菜单中选择“部件”菜单项,打开“部件”对话框。(2)在“部件”对话框的部件列表中找到“MicrosoftWindowsCommonControl6.0”,并用鼠标单击其左边的复选框。(3)单击“确定”按钮,部件被添加到“工具箱”面板上,共有9个控件添加到“工具箱”中,其中有要用到的ToolBar、

StatusBar和ImageList等控件。4.3.2向窗体上添加ToolBar控件把ToolBar控件置入窗体的方法与一般控件的方法一样,双击ToolBar控件,该控件被自动放在窗体内的上边。如果窗体内有菜单,ToolBar控件紧挨在菜单下面。然后,设置其Align属性,该属性决定工具栏放在窗体的哪一位置。ToolBar控件的Align属性与工具栏位置的对应关系见下表所示。

Align属性VB常数工具栏的位置0VbAlignNone不对齐1VbAlignTop(缺省值)对齐窗口客户区顶端2VbAlignBottom对齐窗口客户区底端3VbAlignLeft对齐窗口客户区左边4VbAlignRight对齐窗口客户区右边4.3.2向窗体上添加ToolBar控件1.ToolBar控件的属性页用鼠标右键单击窗体上的ToolBar控件,在弹出菜单中选择“属性”菜单项,可以打开ToolBar控件的属性对话框,如下图所示。4.3.2向窗体上添加ToolBar控件此对话框有三个属性页,缺省的是“通用”属性页,在这个属性页中可以设计工具栏的样式、外观、鼠标指针、按钮宽度、图像列表等等。例如:可以在“外观”选项处可以看到系统默认为立体的(1-cc3D),若设置为0-ccFlat,则工具栏是平面式的。把“样式”从0-tbrStandard改变为1-tbrPlatform,可以把工具栏的风格变为Windows98的风格。

4.3.2向窗体上添加ToolBar控件当选择ToolBar控件的属性页对话框的“按钮”页时,可以进行按钮索引、插入按钮、删除按钮、关键字、标题、按钮样式等内容的设计。当选择ToolBar控件的属性页对话框的“图片”页时,主要是选择当窗体运行时,鼠标进入工具栏变成图形化的鼠标所需要的图片。当选择ToolBar控件的属性页对话框的“按钮”页时,可以进行按钮索引、插入按钮、删除按钮、关键字、标题、按钮样式等内容的设计。

4.3.2向窗体上添加ToolBar控件2.ToolBar控件的常用属性(1)Imagelist属性该属性设置与ToolBar相关联的Imagelist对象。工具栏按钮的图像是由与该属性相关的Imagelist控件提供的。(2)DisableImageList属性该属性设置另一个Imagelist控件与ToolBar控件的关联,工具栏按钮在被禁用时可调用该关联的Imagelist控件中的图像。4.3.2向窗体上添加ToolBar控件(3)HotImageList属性 该属性设置另一个Imagelist控件与ToolBar控件的关联,工具栏按钮在被按下时可调用该关联的Imagelist控件中的图像。(4)ShowTips属性该属性决定程序运行中,鼠标指针移到工具栏按钮时,是否出现该按钮的文本提示。4.3.2向窗体上添加ToolBar控件(5)Visible属性设置工具栏是否可见。(6)Style属性用于设置工具栏按钮的样式。4.3.3ImageList控件的使用

ImageList控件为其他控件保管图像,可以把它视为一种图像仓库。可以不编写装载位图或图标(使用LoadPicture函数)的代码,而是一次性将用到的所有图像填充到ImageList中。4.3.3ImageList控件的使用在需要的时候设置Key的值,然后在代码中使用key或Index属性引用所需的图像。该控件使用ListImage对象集合中的位图(.bmp)或图标(.ico)文件,在设计时和运行时均可添加和删除图像。ListImage对象具有集合对象的标准属性:Key、Index和Picture,如下表所示。4.3.3ImageList控件的使用属性功能Index产生控件数组Key读取或设置用于在一个集合中识别一个对象的串字符Picture返回或设置将显示在控件中的图片4.3.3ImageList控件的使用双击工具箱中的ImageList按钮,窗体上会出现一个ImageList控件,按以下步骤可以在该控件中添加ListImage对象:(1)用鼠标右键单击ImageList控件,然后在弹出菜单中单击“属性”项,显示出ImageList控件的“属性页”对话框。(2)单击“图像”选项卡,如下图所示。4.3.3ImageList控件的使用(3)单击“插入图片”按钮,显示“选定图片”对话框。(4)用该对话框找到位图或图标文件,单击“打开”按钮将选中的图片插入到图像列表框中,为该图像赋予唯一的Key属性和Tag属性,最后单击“确定”按钮,选定的图片就加到控件中了。(5)单击“关键字”框,在其中键入一个字符串,为该图像赋予唯一的Key属性。(6)重复上述操作依次装入工具栏所需的全部图像,为每一个图像指定唯一的关键字。4.3.4将ImageList和ToolBar控件相关联双击工具箱中的ToolBar按钮,窗体上会出现一个ToolBar控件,按以下步骤可以完成ImageList和ToolBar控件相关联。(1)用鼠标右键单击ToolBar控件,并单击“属性”以显示该控件的“属性页”对话框。

(2)单击下图所示的“图像列表”列表框右边的下拉箭头,从下拉列表中选择相关联的ImageList控件,其他各项采用默认值。4.3.4将ImageList和ToolBar控件相关联4.3.5利用ToolBar控件创建快捷按钮按照以下步骤可在窗体上完成创建工具栏快捷按钮。(1)单击“属性页”对话框中的“按钮”选项卡。(2)单击“插入按钮”后,“索引”文本框中出现数字1,其他输入框为可用,如下图所示。4.3.5利用ToolBar控件创建快捷按钮4.3.5利用ToolBar控件创建快捷按钮(3)“图像”输入框设为1,并键入ImageList对象的Key值。(4)重复上述步骤以添加更多的按钮,并将图像赋予给新添加的Button对象。(5)单击“应用”按钮,设置完属性的窗口。在“属性页”对话框的“通用”选项卡中,将工具栏的“外观”和“边框样式”属性都设置为1,可以使工具栏更加突出、漂亮。

4.3.5利用ToolBar控件创建快捷按钮在“属性页”对话框的“按钮”选取项卡中可以设定按钮的“样式”属性。该属性有五种选择:(1)普通按钮(0-tbrDefault)

如果按钮所代表的功能不依赖于其他功能,使用Default按钮样式。例如该按钮被按下,完成功能后它会自动弹回。一般系统中的“新建”、“打开”和“保存”按钮,都属于该式样按钮。(2)开关按钮(1-tbrCheck)

当按钮代表的功能是某种开关类型时,可使用Check样式。4.3.5利用ToolBar控件创建快捷按钮(3)编组按钮(2-thrButtonGroup)

当一组功能相互排斥时,可以使用ButtonGroup样式。相互排斥的意思是说一组功能同时只能有一个有效。(4)分隔按钮(3-thrSeparator)

分隔符类型只是创建宽度为八个像素的按钮,此外没有任何功能,分隔符样式的按钮可以将其他按钮分隔开,或者用它将ButtonGroup样式的按钮封闭起来。4.3.5利用ToolBar控件创建快捷按钮(5)占位按钮(4-thrPlaceholder)

占位符样式按钮的功能如同“哑”按钮:该按钮的作用是在ToolBar控件中占据一定位置,以便显示其他控件。(6)菜单按钮(5-tbrButtonDrop)

带下拉菜单的按钮,这类按钮由一个普通的按钮和一个半宽的下三角按钮构成,当点击三角时,其下面会显示一个下拉菜单。4.3.5利用ToolBar控件创建快捷按钮将按钮添加到工具栏并赋予图像之后,要为所有的按钮添加代码,以使用户单击该按钮时,执行相应的操作。4.3.6ToolBar控件常用的事件和方法工具栏由多个按钮组织起来,不是采用一个按钮对应一个事件过程的处理方法,而是采用统一过程,利用关键字进行多路分支转移。当单击按钮时,会发生ButtonClick事件。用按钮的Index属性或Key属性识别单击的按钮。利用这些属性中的任意一个,可以用SelectCase语句编写按钮的功能。4.3.6ToolBar控件常用的事件和方法下图所示。为一个添加了两个按钮的窗体,两个按钮的关键词(Key)分别为“OpenFile”和“SaveFile”。4.3.6ToolBar控件常用的事件和方法可以用如下代码段为其编程:OptionExplicitPrivateSubToolBar1_ButtonClick(ByValButtonAsMScomctLib.Button)SelectCaseButton.keyCase“OpenFile”

MagBox“YouClickedtheOpenFileButton.”Case“SaveFile”

MagBox“YouclickedtheSavefileButton.”4.3.6ToolBar控件常用的事件和方法EndSelectEndSubToolBar控件的常用方法有利于在程序运行期间进行控制和调整。对工具栏的控制主要是对其中的按钮。常用方法包括:Add:向工具栏增加一个按钮。Remove:从工具栏删除一个按钮。Clear:将工具栏上所有的按钮删除。1.Add方法Add方法的语法为:

4.3.6ToolBar控件常用的事件和方法

ToolBar

控件名.Buttons.Add(Index,Key,Caption,Style,Image)Index用于指定新增按钮的关键字,该索引值决定了按钮在ToolBar中的位置。Key用于指定新增按钮的索引值,可以省略。Caption用于指定新增按钮的标题,可以省略。Style用于指定新增按钮的Style属性,可以省略。Image参数用于指定给新增按钮载入的图像,图像必须是与该Toolbar相关联的ImageList控件图像库中的一个。4.3.6ToolBar控件常用的事件和方法2.Remove方法Remove方法的语法为:ToolBar控件名.Buttons.Remove按钮的Index值从工具栏被移出的按钮,将在程序运行期间消失。3.Clear方法Clear方法的语法为:ToolBar控件名.Buttons.Clear该方法可以删除整个工具栏中的所有按钮。4.4状态栏设计状态栏位于窗体的底部,用于显示系统的一些状态。下面以创建显示系统日期和时间的状态栏为例,如下图所示,说明状态栏的创建过程。4.4状态栏设计(1)双击工具箱中的状态栏控件,在窗体中添加状态栏。状态栏控件也是ActiveX控件。(2)用鼠标右键单击工具栏控件,在弹出的菜单中单击”属性”菜单项,出现如下图所示的对话框。4.4状态栏设计4.4状态栏设计(3)单击“窗格”选项卡,“属性页”窗口如下图所示。

4.4状态栏设计

“样式”列表框设置为6-sbrDate,可以显示系统日期,“样式”列表框有8个选项,“斜面”列表框设为1-sbrInset,即窗格以凹状出现。(4)在上图所示的窗口中,单击“插入窗格”按钮,为每个窗格设置属性。如果要在新加的窗格中显示系统时间,则“样式”列表框为5-sbrTime,“索引框”为2。(5)单击“浏览”按钮,从出现“选定图片”对话框中选择一个图片,单击“打开”按钮后,“属性页”对话框如下图所示。4.4状态栏设计4.5对话框设计用多种方法创建不同的对话框,可以用函数生成消息框和输入框,用通用对话框控件(CommonDialog控件)生成通用对话框,以及通过自己定义对话框的方法生成复杂的对话框。4.5.1使用函数生成对话框1.消息框MsgBox函数,可以在屏幕上出现一个消息框来显示消息,如下面左图所示在窗体上放置一个命令按钮“显示消息框”,单击这个按钮会产生如右图所示的对话框。4.5.1使用函数生成对话框本例需要键入如下代码:PrivateSubCommand1_Click()tt=MsgBox(“请选择操作”,65,“消息框”)EndSub该对话框由三部分组成,分别为:(1)标题:显示在对话框最顶端的“消息框”为标题栏文本。(2)提示信息:中间显示的“请选择操作”为对话框的提示内容。(3)按钮:供用户选择的“确定”和“取消”按钮。4.5.1使用函数生成对话框MsgBox函数的语法格式为:MsgBox(prompt[,buttons][,title][,helpfile,context])(1)prompt该参数为一字符串表达式,作为显示在对放框中的消息。prompt的最大长度大约为1024个英文字符。如果要显示的prompt内容超过一行,则可以在每一行之间用回车符或者换行符4.5.1使用函数生成对话框注意不能在字符串之中直接敲<Enter>键,而要使用Chr函数。Chr函数可以返回与指定的字符代码相关的字符,回车符用Chr(10)表示,换行符用Chr(13)表示。回车符或者换行符与字符串之间要用“+”或者“&”来连接。(2)buttons(可选)该参数为三个数值相加之和,这三个数值分别代表按钮的类型、显示图标样式和哪一个按钮是缺省的“活动按钮”。4.5.1使用函数生成对话框(3)title(可选)该参数为在对话框标题栏中显示的字符串表达式,如果省略title参数则VisualBasic将应用程序名放在标题栏中。(4)helpfile(可选)该参数为一字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件,如果提供了helpfile参数,则也须提供context参数。4.5.1使用函数生成对话框(5)context(可选)该参数为一数值表达式,由帮助文件的作者指定给适当的帮助主题的帮助上下文编号。同样,如果提供了context参数,二者要同时提供。4.5.1使用函数生成对话框例如:tt=MsgBox("请选择操作",65,"消息框")在该语句中,将函数返回值赋给变量tt,可以通过返回值来确定单击了对话框中的哪个按钮,函数中的第二个参数是从以上三个表中各取一个数相加(即65=1+64+0),其中1表示在消息框中显示“确定”和“取消”两个按钮;0表示在消息框中第一个“确定”按钮为缺省的活动按钮。4.5.1使用函数生成对话框2.输入框用InputBox函数建立输入框。InputBox函数的语法格式为:InputBox(prompt[,title][,default][,xpos][,helpfilecontext])(1)prompt该参数定义同MsgBox函数中一致。4.5.1使用函数生成对话框(2)title(可选)该参数为显示对话框标题栏中的字符串表达式,如果省略参数title,则把应用程序名放入标题栏中。(3)default(可选)该参数显示文本框中的字符串表达式,在没有其他输入时作为默认值。如果省略default参数,则文本框初始化为空。4.5.1使用函数生成对话框(4)xpos(可选)该参数为一数值表达式,与ypos参数成对出现,用于指定对话框的左边与屏幕左边的水平距离。如果省略参数xpos,则对话框显示在水平方向居中。(5)ypos(可选)该参数为一数值表达式,与xpos参数成对出现,用于指定对话框的上边与屏幕的垂直距离。如果省略参数ypos,则对话框的上边与屏幕的垂直距离。如果省略参数ypos,则对话框显示在屏幕垂直方向距下边大约1/3的位置。4.5.1使用函数生成对话框

(6)helpfile(可选)该参数为一字符串表达式,用来识别帮助文件,并用该文件为对话框提供上下文相关的帮助。如果已提供了helpfile,则也必须提供context。(7)context(可选)该参数为一数值表达式,由帮助文件的作者指定给某个帮助主题的帮助上下文编号。如果已提供了context,则也必须提供helpfile。4.5.1使用函数生成对话框例如用InputBox函数,输入用户名,输入框的标题为“输入对话框”,显示的信息为“请输入用户名:”。如果单击“确定”按钮或按下<Enter>键,则变量name会保存文本框中由用户输入的用户名,如果用户单击“取消”按钮,则返回一长度为0的字符串。

PrivateSubCommand1_Click()DimnameAsStringname=InputBox(“请输入用户名:”,“输入对话框”)

EndSub

4.5.1使用函数生成对话框在程序运行后,用户只要在窗体的按钮上单击,就会显示一个输入框,如下图所示。4.5.2通用对话框通用对话框(CommonDialog)控件提供一组标准对话框:如“打开”、“另存为”、“颜色”、“字体”和“打印”等对话框,进行打开和保存文件、选择字体和设置打印选项等操作,而且通用对话框还能启动帮助系统。注意:CommonDialog控件在VisualBasic和

Windows动态连接库Commdlg.dll例程之间提供了接口,因此用该控件创建对话框,要求Commdlg.dll在Windows的System目录下。4.5.2通用对话框在程序中使用CommonDialog控件,可将其添加到窗体中并设置属性,控件所显示的对话框由控件的方法决定。在设计时,CommonDialog控件是以图标的形式显示在窗体中,在运行时,当相应的方法被调用时,将显示一个对话框或启动帮助系统。

4.5.2通用对话框CommonDialog控件不在标准工具箱中,添加通用对话框控件可以按以下方法进行。(1)在工具箱的任一位置单击右键,系统弹出快捷菜单,选择其中的“部件”选项;或者在“工程”菜单中选择“部件”选项;或者按<Ctrl>+<T>组合键,系统打开“部件”对话框,如下图所示。(2)在“部件”对话框中的“控件”选项卡中,找到“MicrosoftCommonDialogControl6.0”并选中。4.5.2通用对话框4.5.2通用对话框(3)单击“确定”按钮,通用对话框控件按钮出现在工具箱中,其图标如下图所示。

CommonDialog控件在窗体上显示为一图标,此图标的大小不能改变,用户也无法指定对话框在屏幕上显示的位置。运行时,按下表所列的方法显示需要的对话框。4.5.2通用对话框方法对话框类型ShowOpen显示打开对话框ShowSave显示另存为对话框ShowColor显示颜色对话框ShowFont显示字体对话框ShowPrinter显示打印对话框ShowHelp显示Windows帮助对话框4.5.2通用对话框1.“打开”和“另存为”对话框使用“打开”对话框可以指定驱动器、文件夹、文件扩展名和文件名,如下图所示。4.5.2通用对话框“另存为”对话框在外观上与“打开”对话框基本相同,如下图所示。下面举例说明如何显示“打开”和“另存为”对话框。4.5.2通用对话框例4.2在窗体上放置三个CommandButton控件,分别为:“打开”按钮,其Name属性为cmdopen;“另存”按钮,其Name属性为cmdsave;“取消”按钮,其Name属性为cmdcancel;以及一个CommonDialog控件,其缺省Name属性为commondialog1,如下图所示。

4.5.2通用对话框4.5.2通用对话框

要显示打开或者另存为对话框,程序代码如下:

PrivateSubcmdopen_Click()CommonDialog1.FileName=""CommonDialog1.Filter = “allfiles|*.bmp|*.txt|*.doc”′设置文件过滤器

CommonDialog1.ShowOpen′显示“打开”对话框EndSub4.5.2通用对话框PrivateSubcmdsave_Click()CommonDialog1.FileName=""CommonDialog1.Filter = "BmpFiles(*.bmp;*.BMP)"′设置文件过滤器

CommonDialog1.ShowSave′显示“另存为”对话框EndSubCommonDialog.ShowOpen′显示“打开”对话框

CommoDialog.ShowSave′显示“另存为”对话框4.5.2通用对话框当选定文件并关闭对话框后,可以从控件的FileName属性获取选定的文件名。还可以通过置Filter属性来指定在“文件类型”列表框中显示的文件过滤器列表,其格式如下:description1|filter1|description2|filter2…4.5.2通用对话框description是列表框中显示的字符串,例如“ExecutableFiles(.exe)”;Filter是实际的文件过滤器,例如:“.exe”。每个description|filter设置间必须用符号“|”隔开。通过设置控件的FilterIndex属性来指定要选择哪一种文件类型。4.5.2通用对话框程序运行后,单击窗体上的“打开”按钮,显示下图所示的对话框。4.5.2通用对话框单击窗体上的“另存为”按钮,显示如下图所示的对话框,用户可从文件类型列表中看到文件过滤器的结果。4.5.2通用对话框2.“颜色”对话框使用“颜色”对话框,可以在调色板中选择颜色或自定义需要的颜色。运行颜色对话框并关闭,该颜色记录在控件的Color属性中。例4.3在窗体上放置三个CommandButton控件,分别为:“前景颜色”按钮,其Name属性为cmdfore;“背景颜色”按钮,其Name属性为cmdback;“取消”按钮,其Name属性为cmdcancel;一个CommonDialog控件,其缺省Name属性为commondialog1;以及一个文本框,Name属性为text1,如下图所示。4.5.2通用对话框4.5.2通用对话框在程序中显示“颜色”对话框的步骤如下:(1)将CommonDialog控件的Flags属性设置成VisualBasic常数cdICCRGBInit,这样可用Color属性获取选定的颜色的RGB值。(2)用ShowColor方法显示对话框,程序代码如下:

PrivateSubcmdback_Click()CommonDialog1.Flags=cdlCCRGBInit′为对话框设置初始颜色值

CommonDialog1.ShowColor′显示“颜色”对话框4.5.2通用对话框

Text1.BackColor=CommonDialog1.Color′设置背景颜色

EndSub

PrivateSubcmdfore_Click()CommonDialog1.Flags=cdlCCRGBInit′为对话框设置初始颜色值

CommonDialog1.ShowColor′显示“颜色”对话框

Text1.ForeColor=CommonDialog1.Color′设置前景颜色

EndSub4.5.2通用对话框程序运行后,用户只要单击“前景颜色”或“背景颜色”按钮,就可显示如下图所示的“颜色”对话框。4.5.2通用对话框选定颜色后,单击“确定”按钮,可以设置前景色和背景色,如下图所示。4.5.2通用对话框3.“字体”和“打印”对话框“字体”对话框可以根据需要选择字体的大小、样式等。“打印”对话框指定打印输出的方法。在打印对话框中可指定打印页数范围、打印质量、复制数目等,此外还有一个是否打印到文件的选项。4.5.2通用对话框例4.4在窗体上放置三个CommandButton控件,分别为:“字体”按钮,其Name属性为cmdfont;“打印”按钮,其Name属性为cmdprint;“取消”按钮,其Name属性为cmdcancel;一个CommonDialog控件,其缺省Name属性为commondialog1,以及一个文本框,其Name属性为text1,如下图所示。4.5.2通用对话框4.5.2通用对话框程序代码如下:PrivateSubcmdfont_Click()CommonDialog1.ShowFont′显示“字体”对话框

CommonDialog1.Flags=cdlCFBoth

Text1.FontSize=CommonDialog1.FontSizeText1.FontUnderline=CommonDialog1.FontUnderlineText1.FontStrikethru=CommonDialog1.FontStrikethru

Text1.FontBold=CommonDialog1.FontBold

4.5.2通用对话框

Text1.FontItalic=CommonDialog1.FontItalicEndSubPrivateSubcmdprint_Click()CommonDialog1.Copies=1′设置默认打印份数

CommonDialog1.ShowPrinter′显示“打印”对话框EndSubFlags属性设置“字体“对话框的选项,显示对话框之前必须设置该属性。

4.5.2通用对话框常用的取值为下表所列的三个VisualBasic常量,同时取多个值,要用OR运算符连接。使用属性窗口可以设置Flags属性值,也可以用赋值语句在程序代码中设置属性值。字体集常量值屏幕字体CdlCFScreenFonts1打印字体CblCFPrinterFonts2以上两种字体CdlCFBoth34.5.2通用对话框FontSize属性:返回字体大小。FontBold属性:确定是否选择“粗体”。FontItalic属性:确定是否选择“斜体”。FontUnderline属性:确定是否选择“删除线”。FontStrikethru属性:确定是否选择“下划线”。在显示“字体”对话框前如果没有为Flags属性设置合法的数值,在程序运行时将出现没有安装字体的错误信息,如下图所示。

4.5.2通用对话框

4.5.2通用对话框用户只要在“字体”按钮上单击,就可显示如下图所示的字体对话框。4.5.2通用对话框在“打印”按钮上单击,就可显示如下图所示的打印对话框。4.5.2通用对话框可以从对话框中的“名称”列表中选择打印机,这个列表包含了安装在Windows中的所有打印机。在“名称”列表下边是“状态”行,告诉用户选中的打印机的当前状态。如果用户想改变打印机的任何参(例如纸张大小和打印质量等),可以单击“打印”对话框中的“属性”按钮,这样就弹出选中的打印机的属性对话框,如下图所示。4.5.2通用对话框4.5.2通用对话框4.“帮助”对话框使用CommonDialog控件可以启动帮助系统,设置通用对话框控件的HelpFile、HelpKe、HelpCommand属性等,然后调用ShowHelp方法显示帮助对话框。例4.5如下图所示。4.5.2通用对话框4.5.2通用对话框单击“帮助”菜单项,即可启动Windows帮助系统,如下图所示。

4.5.2通用对话框本例所需的程序代码如下:PrivateSubmnuhelp_Click()CommonDialog1.HelpFile="c:\windows\help\notepad.hlp"CommonDialog1.HelpCommand=cdlHelpForceFileCommonDialog1.ShowHel′显示帮助文件EndSub4.5.2通用对话框

HelpFile属性设置要显示的帮助文件名包括所在的驱动器和目录。HelpCommand属性设置需要的联机帮助类型同时取多个值时,用OR运算符连接。4.5.3自定义对话框定制对话框的过程就是编写一个小程序的过程,通过创建一个窗体,窗体上包括一些控件来实现对话框所需要的功能。因为对话框是临时的,不能移动、改变大小、最大化或最小化等,所以将窗体的BorderStyle属性设为3-FixedDialog,这样只显示关闭按钮,运行时不能改变大小。用窗体自定义对话框的一般步骤如下:

4.5.3自定义对话框(1)向工程中添加窗体。(2)在窗体上创建其他控件对象,定义对话框的外观。(3)设置窗体和控件对象的属性(4)在代码窗口创建事件过程。自定义对话框的外观比较自由,可以是固定的或可移动的。作为对话框的窗体没有菜单栏、窗口滚动条、控制状态按钮,窗体的尺寸大小一般不可以改变。4.5.3自定义对话框例4.6设计一个应用程序的口令检测对话框。在窗体form1的基础上,添加新窗体,如下图所示,其name属性为form2,Caption属性为“口令”,MaxButton和MinButton属性为false。新添加窗体上的控件为:Label1用于显示“请输入口令”;Label2用于提示口令出错,其不可见;文本框Text1用于输入口令,显示为“*”;命令按钮cmdok和cmdcancel。4.5.3自定义对话框4.5.3自定义对话框程序代码如下:PrivateSubForm_Load()Form2.ShowvbModalEndSubPrivateSubcmdok_Click()IfText1.Text="111111"ThenUnloadMeElse

4.5.3自定义对话框

time=time+1Iftime=2Thencmdok.Enabled=FalseText1.Enabled=FalseElseLabel2.Visible=TrueEndIfEndIfEndSub

4.5.3自定义对话框PrivateSubText1_GotFocus()Label2.Visible=FalseEndSub运行程序,出现如下图所示的口令输入对话框。

4.5.3自定义对话框如果在文本框中输入的不是“111111”,单击“确定”按钮后,将提示口令不正确,如下图所示。

4.5.3自定义对话框本例中的time用于记录输入口令的次数,如果输入的不是“111111”,则time增加1,然后判断time是否等于2。如果是,将“确定”按钮和文本框设为无效;如果不是,表示用户只输入一次密码,用标签Label2提示再次输入。

4.6多文档界面设计

基于Windows应用程序的用户界面主要有两大类:单文档界面(SDI)和多文档界面(MDI)。MicrosoftWindows中的写字板应用程序就是单文档界面的例子,如下图所示,在写字板应用程序中只能打开一个文档。4.6多文档界面设计4.6多文档界面设计多文档界面的典型例子,如下图所示。

4.6多文档界面设计在MDI应用程序中至少包含两种窗体:父窗体和子窗体。每个窗体都有相应的属性。父窗体只有一个,而其中包含的子窗体则可以有多个。父窗体为应用程序中的所有子窗体提供工作空间,当子窗体最小化时,只显示在父窗体内,而不是显示在任务栏中,当父窗体最小化或关闭时,子窗体也随之最小化或关闭。

4.6多文档界面设计生成MDI应用程序具体的操作如下:(1)创建MDI窗体。从“工程”菜单中选择“添加MDI窗体”项,系统打开“添加MDI窗体”对话框,如下图所示。

4.6多文档界面设计4.6多文档界面设计(2)选中该图中的“MDI窗体”图标,单击“打开”按钮,设置该窗体的Caption属性为“MDI窗体”。(3)创建MDI窗体的子窗体。先创建一个新窗体(或打开一个已存在的窗体),将窗体的MDIChild属性设置为True,其Caption属性设为“子窗体1”。(4)从“工程”菜单中选择“属性”项,打开“工程属性”对话框,设置子窗体为启动窗体。4.6多文档界面设计运行后如图所示。如果设置MDI窗体为启动窗体,则子窗体将不会显示,如下图所示。4.6多文档界面设计(5)创建多个子窗体。再添加一个新窗体,将其MDIChild属性设置为True,Caption属性为“子窗体2”,Name

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论