资源预览内容
第1页 / 共48页
第2页 / 共48页
第3页 / 共48页
第4页 / 共48页
第5页 / 共48页
第6页 / 共48页
第7页 / 共48页
第8页 / 共48页
第9页 / 共48页
第10页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第12章章 对话框程序设计对话框程序设计12.4应用举例12.3其他对话框12.2文件对话框12.1概述VisualBasic提供了InputBox函数和MsgBox函数,用这两个函数可以建立简单的对话框,即输入对话框和信息框。VisualBasic还允许用户根据需要在窗体上设计较复杂的对话框。本章将介绍如何用VisualBasic进行对话框程序设计。12.1概述在VisualBasic中,对话框(DialogBox)是一种特殊的窗口(窗体),它通过显示和获取信息与用户进行交流。从结构上来说,对话框与窗体是类似的。简单的对话框用于显示一段信息,并从用户那里得到简单的反馈信息。利用较复杂的对话框,可以得到更多的信息,或者设置整个应用程序的选项。使用过字处理软件(如Word)或电子表格软件(如Excel)的想必见过较为复杂的对话框,很多选项都可以用这些对话框设置。12.1.1对话框的分类与特点1、对话框的分类VisualBasic中的对话框分为三种类型,即预定义对话框、自定义对话框和通用对话框。VisualBasic提供了两种预定义对话框,即输入框和信息框(或消息框),前者用InputBox函数建立,后者用MsgBox函数建立。自定义对话框由用户根据自己的需要进行定义。输入框和信息框尽管很容易建立,但在应用上有一定的限制,很多情况下无法满足需要,用户可以根据具体需要建立自己的对话框。通用对话框是一种控件,用这种控件可以设计较为复杂的对话框。本章将介绍后两种对话框,即自定义对话框和通用对话框。2、对话框的特点对话框是一种特殊的窗体,具有区别于一般窗体的不同的属性,主要表现在以下几个方面:(1)在一般情况下,用户没有必要改变对话框的大小,因此其边框是固定的。(2)为了退出对话框,必须单击其中的某个按钮,不能通过单击对话框外部的某个地方关闭对话框。(3)对话框中不能有最大化按钮(MaxButton)和最小化按钮(MinButton),以免被意外地扩大或缩成图标。(4)对话框不是应用程序的主要工作区,只是临时使用,使用后就关闭。(5)对话框中控件的属性可以在设计阶段设置,但在有些情况下,必须在运行时(即在代码中)设置控件的属性,因为某些属性设置取决于程序中的条件判断。VisualBasic的预定义对话框体现了前面四个特点,在定义自己的对话框时,也必须考虑到上述特点。12.1.2自定义对话框预定义对话框(信息框和输入框)容易建立,但在应用上有一定的限制。例如,对于信息框来说,只能显示简单性信息、一个图标和有限的几种命令按钮,不能改变命令按钮的说明文字,也不能接收用户输入的任何信息。用输入框可以接收输入的信息,但只限于使用一个输入区域,而且只能使用“确定”和“取消”两种命令按钮。如果需要比输入框或信息框功能更多的对话框,则只能由用户自己建立。下面通过一个例子,说明如何建立用户自己的对话框。该例由两个窗体组成,其中第二个窗体作为对话框。按以下步骤操作:(1)实行“文件”菜单中的“新建工程”命令,建立一个新的工程。屏幕上将出现一个窗体,该窗体作为工程的第一个窗体。(2)把第一个窗体的名称和标题(Caption属性)设置为Form1(默认),然后在该窗体内建立两个命令按钮,其标题(Caption属性)分别为“设置数据”和“退出”;FontSize属性置为20;名称分别为Command1和Command2。第一个窗体窗体的控制菜单(系统菜单)、最大化、最小化按钮被设置为False,但在设计阶段窗体不会发生变化,只有在程序运行后,控制菜单及最大、最小化按钮才会消失。(3)实行“工程”菜单中的“添加窗体”命令,建立第二个窗体。该窗体作为对话框使用,其属性设置如表12.1。(4)在窗体内建立控件,其属性设置如表12.2。第二个窗体(5)为第一个窗体中的两个命令按钮编写如下事件过程:PrivateSubCommandl_Click()Form2.Show1EndSubPrivateSubCommand2_Click()EndEndSub第一个事件过程以模态方式显示第二个窗体,第二个事件过程用来结束程序运行。单击命令按钮Command1后,将显示第二个窗体;而如果单击命令按钮Command2,则结束程序。(6)为第二个窗体中的两个命令按钮编写如下事件过程:PrivateSubCommandl_Click()IfOption1ThenEnter_dat=Val(Textt1.Text)EndIfIfOption2ThenEnter_dat=Val(Textt1.Text)EndIfPrintEnter_datEndSubPrivateSubCommand2_Click()Form2.HideEndSub第二个窗体是一个对话框,可以在该对话框中输入数据。如果框架中的第一个单选按钮被选中,则表示输入数值数据;如果第二个单选按钮被选中,则表示输入字符串数据。在默认情况下输入数值数据。为了输入某种类型的数据,应先单击相应的单选按钮。选择输入的数据类型后,再单击文本框,即可输入数据。输入后单击“确定”按钮,所输入的值即被存入变量Enter_dat,并在窗体上显示出来。在该命令按钮的事件过程中,根据选择第一个或第二个单选按钮对输入的数据进行不同的处理(即转换为数值或直接作为字符串保存)。Enter_dat是一个变体类型变量,既可存放数值数据,也可存放字符串数据。如果单击第二个命令按钮(“取消”),则关闭对话框(第二个窗体)。程序运行后可以看出,在这个窗体上,没有控制菜单,也没有最大、最小化按钮,而是一个模态窗口。自定义对话框12.1.3通用对话框控件用MsgBox和InputBox函数可以建立简单的对话框,即信息框和输入框。如果需要,也可以用上面介绍的方法,定义自己的对话框。当要定义的对话框较复杂时,VisualBasic6.0提供了通用对话框控件,用它可以定义较为复杂的对话框。通用对话框是一种ActiveX控件,在一般情况下,启动VisualBasic后,在工具箱中没有通用对话框控件。为了把通用对话框控件加到工具箱中,可按如下步骤操作:(1)实行“工程”菜单中的“部件”命令,打开“部件”对话框。(2)在对话框中选择“控件”选项卡,然后在控件列表框中选择“MicrosoftCommonDialogControl6.0”。(3)单击“确定”按钮,通用对话框即被加到工具箱中。通用对话框的默认名称(Name属性)为CommonDialogx(x为1,2,3)。通用对话框控件提供了几种不同类型的对话框,利用这些对话框,可以获取所需要的信息,诸如取得文件名、打开文件、将文件存盘、打印等。这些对话框与Windows及许多应用程序具有相同的风格。对话框的类型可以通过Action属性设置,也可以用相应的方法设置。表12.3列出了各类对话框所需要的Action属性值和方法。在设计阶段,通用对话框按钮以图标形式显示,不能调整其大小(与计时器类似),程序运行后消失。如前所述,通用对话框Name属性的默认值为CommonDialogx,为了提高程序的可读性,最好能使Name属性具有一定的意义,如GetFile、SaveFile等。此外,每种对话框都有自己的默认标题,如“打开”、“保存”等,还可以通过DialogTitle属性设置有实际意义的标题。例如:GetFile.DialogTitle”选择要打开的位图文件“当然,也可以在属性窗口中设置该属性。下面将介绍如何建立VisualBasic提供的几种通用对话框,即文件对话框、颜色对话框、字体对话框和打印对话框。12.2文件对话框文件对话框分为两种,即打开(Open)文件对话框和保存(SaveAs)文件对话框。通用对话框的重要用途之一,就是从用户那里获得文件名信息。打开文件对话框可以让用户指定一个文件,由程序使用;而用保存文件对话框可以指定一个文件,并以这个文件名保存当前文件。12.2.1文件对话框的结构从结构上来说,“打开”和“保存”对话框是类似的。如图所示的是一个“打开图片文件”对话框,它属于“打开”对话框。(1)对话框标题:通用对话框标题,通过DialogTitle属性设置。(2)文件夹:用来显示文件夹。单击右端的箭头,将显示驱动器和文件夹的列表,可以在该列表中选择所需要的文件夹。(3)选择文件夹级别:单击一次该按钮,回退一个文件夹级别。(4)新文件夹:用来建立新文件夹。(5)文件列表模式:选择是否以列表方式显示文件和文件夹。(6)文件期间:显示文件的详细情况,包括文件名、文件大小、建立(修改)日期、时间及属性等。(7)文件列表:在该区域显示的是“文件夹”栏内文件夹的子目录,列出了准备使用的文件或文件夹,单击其中的某个文件名,将选择该文件,所选择的文件名将在“文件名”栏内显示出来。如果当前显示的文件列表中没有所需要的文件,可双击其中的文件夹,显示下一级的文件或文件夹。(8)文件类型:指定要打开和保存的文件的类型,该类型由通用对话框的Filter属性确定。(9)文件名:所选择的或输入的文件名。用“打开”或“保存”对话框都可以指定一个文件名,所指定的文件名在该栏内显示,单击“打开”或“保存”按钮后,将以该文件名打开或保存文件。在对话框的右下部还有两个按钮,即“打开”和“取消”。在“保存”对话框中,“打开”按钮用“保存”取代。12.2.2文件对话框的属性打开(Open)和保存(Save)对话框共同的属性如下:(1)DefaultEXT属性设置对话框中默认文件类型,即扩展名。该扩展名出现在“文件类型”栏内。如果在打开和保存的文件名中没有给出扩展名,则自动将DefaultEXT属性值作为其扩展名。(2)DialogTitle属性该属性用来设置对话框的标题。在默认情况下,“打开”对话框的标题是“打开”,“保存”对话框的标题是“保存”。(3)FileName属性用来设置或返回要打开或保存的文件的路径及文件名。在文件对话框中显示一系列文件名,如果选择了一个文件并单击“打开”或“保存”按钮(或双击所选择的文件),所选择的文件即作为属性FileName的值,然后就可把该文件名作为要打开或保存的文件。(4)FileTitle属性用来指定文件对话框中所选择的文件名(不包含路径)。该属性与FileName属性的区别是:FileName属性用来指定完整的路径,“d:progvbftest.frm”;而FileTitle只指定文件名,如“test.frm”。(5)Filter属性用来指定在对话框中显示的文件类型。用该属性可以设置多个文件类型,供用户在对话框的“文件类型”的下拉列表中选择。Filter的属性值由一对或多对文本字符串组成,每对字符串用管道符“|”隔开,在“|”前面的部分称为描述符,后面的部分一般为通配符和文件扩展名,称为“过滤器”,如*.txt等,各对字符串之间也用管道符隔开。其格式如下:窗体.对话框名.Filter=描述符1|过滤器1|描述符2|过滤器2如果省略窗体,则为当前窗体。例如:CommonDialog1.Filter=WordFiles|(*.DOC)执行该语句后,在前文件列表栏内将只显示扩展名为.DOC的文件。再如:CommonDialog1.Filter=AllFiles|(*.*)|WordFiles|(*.DOC)|TextFiles|(*.TXT)执行该语句后,可以在文件类型栏内通过下拉列表选择要显示的文件类型。(6)FilterIndex属性用来指定默认的过滤器,其设置值为一整数。用Filter属性设置多个过滤器后,每个过滤器都有一个值,第一个过滤器的值为1,第二个过滤器的值为2用FilterIndex属性可以指定作为默认显示的过滤器。例如:CommonDialog1.FilterIndex=3将把第三个过滤器作为默认显示的过滤器。对于上面的例子来说,打开对话框后,在文件类型栏内显示的是“(*.TXT)”,其他过滤器必须通过下拉列表显示。(7)Flags属性为文件对话框设置选择开关,用来控制对话框的外观,其格式如下:对象.Flags=值其中“对象”为通用对话框的名称:“值”是一个整数,可以使用三种形式,即符号常量、十六进制整数和十进制整数。文件对话框的Flags属性所使用的值见表12.4。在应用程序中,可以使用三种形式中的任一种,例如:CommonDialog1.Flags=vbOFNFileMustExist(符号常量)或CommonDialog1.Flags=&H1000&(十六进制整数)或CommonDialog1.Flags=4096(十进制整数)一般来说,使用整数可以简化代码,而使用符号常量则可以提高程序的可读性,因为从符号常量本身可以大致的看出属性的含义。此外,Flags属性允许设置多个值,这可以通过以下两种方法来实现:l如果使用符号常量,则将各值之间用“Or”运算符连接,例如:CommonDialog1.Flags=vbOFNOverwritePromptOrvbOFNPathMustExistl如果使用数值,则将需要设置的属性值相加。例如,上面的例子可以写作:CommonDialog1.Flags=2050(即20482)当设置多个Flags属性值时,注意各值之间不要发生冲突。文件对话框Flags属性各种取值的意义见表12.5(只列出十进制值)。(8)InitDir属性用来指定对话框中显示的起始目录。如果没有设置InitDir,则显示当前目录。(9)MaxFileSize属性设定FileName属性的最大长度,字节为单位。取值范围为12048,默认为256。(10)CancelError属性如果该属性被设置为True,则当单击Cancel(取消)按钮关闭一个对话框时,将显示出错信息,如果设置为False(默认),则不显示出错信息。(11)HelpCommand属性指定Help的类型,可以取以下几种值:1显示一个特定上下文的Help屏幕,该上下文应先在通用对话框控件的HelpConText属性中定义。2通知Help应用程序,不再需要指定的Help文件。3显示一个帮助文件的索引屏幕。4显示标准的如何使用帮助窗口。5当Help文件有多个索引时,该设置使用HelpContext属性定义的索引成为当前索引。257显示关键词窗口,关键词必须在HelpKey属性中定义。(12)HelpContext属性用来确定HelpID的内容,与HelpCommand属性一起使用,指定显示的Help主题。(13)HelpFile和HelpKey属性分别用来指定Help应用程序的Help文件名和Help主题能够识别的名字。 通用对话框类似于计时器,在设计应用程序时,可以把它放在窗体中的任何位置,其大小不能改变,程序运行时不出现在窗体上。本章中常用且重要的表如下: 与CommonDialog1.Action 的值等价的语句CommonDialog1.Action = 1CommonDialog1.ShowOpenCommonDialog1.Action = 2CommonDialog1.ShowSaveCommonDialog1.Action = 3CommonDialog1.ShowColorCommonDialog1.Action = 4CommonDialog1.ShowFontCommonDialog1.Action = 5CommonDialog1.ShowPrinterOpen对话框12.3其他对话框 用通用对话框控件除了能建立文件对话框外,还可以建立其他一些对话框,包括颜色对话框、字体对话框和打印对话框等。12.3.1颜色(Color)对话框颜色对话框用来设置颜色。它具有与文件对话框相同的一些属性,包括CancelError、DialogTitle、HelpCommand、HelpContext、HelpFile和HelpKey,此外还有两个属性,即Color属性和Flags属性。Color属性用来设置初始颜色,并把在对话框中选择的颜色返回给应用程序。该属性是一个长整型数。Flags属性的取值见表12.6,Flags属性值的含义见表12.7。 为了设置或读取Color属性,必须将Flags属性设置为1(vbCCRGBInit)。 颜色对话框的Flags属性有四种取值(见前),其中vbCCRGBInit是必须的,用它可以打开一个颜色对话框,并可设置或读取Color属性。在颜色对话框中,如果单击“规定自定义颜色”按钮,则可打开自定义颜色对话框,它附加到颜色对话框的右侧,这样的颜色对话框称为完整对话框。如果同时设置vbCCTGBInit和vbCCRGBInit和vbCCPreventFullOpen,则禁止打开右边的自定义颜色对话框,在这种情况下,对话框中的“规定自定义颜色”按钮无效。12.3.2字体(Font)对话框在VisualBasic中,字体通过Font对话框或字体属性设置。利用通用对话框控件,可以建立一个字体对话框,并可在该对话框中设置应用程序所需要的字体。字体对话框具有以下属性:1、CancelError、DialogTitle、HelpCommand、HelpContext、HelpFile和HelpKey2、Flags属性其取值见表12.8,各属性值的含义见表12.9。3、FontBold、FontItalic、FontName、FontSize、FontStrikeThru、FontUnderline这些属性可以在对话框中选择,也可以通过程序代码赋值。4、Max和Min属性字体大小用点(一个点的高度是1/72英寸)量度。在默认情况下,字体大小的范围为12048个点,用Max和Min属性可以指定字体大小的范围。注意,在设置Max和Min属性之前,必须把Flags属性值设置为8192。Font对话框可以通过ShowFont方法或Action属性(4)建立。12.3.3打印(Printer)对话框用打印对话框可以选择要使用的打印机,并可为打印处理指定相应的选项,如打印范围、数 量 等 。 打 印 对 话 框 除 具 有 前 面 讲 过 的 CancelError、 DialogTitle、 HelpCommand、HelpContext、HelpFile和HelpKey等属性外,还具有以下属性。1、Copies属性指定要打印的文档的拷贝数。如果把Flags属性值设置为262144,则Copies属性值总为1。2、Flags属性该属性的取值见表12.10,各属性值的作用见表12.11。3、FromPage和ToPage属性指定要打印文档的页范围。如果要使用这两个属性,必须把Flags属性设置为2。4、HDC属性分配给打印机的句柄,用来识别对象的设备环境,用于API调用。5、Max和Min属性用来限制FromPage和ToPage的范围,其中Min指定所允许的起始页码,Max指定所允许的最后页码。6、PrinterDefault属性该属性是一个布尔值,在默认情况下为True。当该属性值为True时,如果选择了不同的打印设置(如将Fax作为默认打印机等),VisualBasic将对Win.ini文件作相应的修改。如果把该属性设为False,则对打印设置的改变不会保存在Win.ini文件中,并且不会成为打印机的当前默认设置。打印对话框通过ShowPrint或Action属性(5)建立。利用打印对话框,可以选择要使用的打印机、设定打印范围和打印份数。如果单击“属性”按钮,则可以打开所选择的打印机的属性对话框。在这个对话框中可以设置打印纸尺寸、页边距等。但是应注意,和VisualBasic环境下的打印对话框不同,为了执行具体的打印操作,必须编写相应的程序代码。建立打印对话框
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号