第六章 对话框控件
- 格式:doc
- 大小:52.00 KB
- 文档页数:8
第六章对话框的设计6.1 预定义对话框在应用程序中添加对话框最容易的方法是使用预定义对话框,因为不必考虑设计、装载或者显示对话框方面的问题。
然而,其控件在外观上要受到限制。
预定义的对话框总是模式的。
表6.1中列出了在Visual Basic应用程序中添加预定义对话框时所使用的函数。
6.1.1 输入框InputBox函数用来产生要求输入数据的输入框;在输入框中显示提示文本、文本框和按钮;等待用户的输入或按下按钮,并返回用户在文本框中输入的内容。
如图6.1所示的输入框就是使用InputBox函数所产生的,用来提示用户输入要在窗体上显示的内容。
生成该输入框的代码如下所示:Word=InputBox(“请输入要在窗体中显示的内容:”、“输入”)只需再做一点工作就可以将上面的文本输入框使用到程序中了。
实例6.1使用输入框。
在窗体中放置一个按钮控件,并设置它的Caption属性的值为“输入要显示的内容”,双击这个按钮控件打开它的代码窗口,编写如下代码:个参数是指输入框中的用户提示字符串,第二个参数是指输入框的标题:InputBox(prompt[,title][,default][,spos][,ypos][,helpfile,context])InputBox函数语法中的各参数的含义如表6.2所示。
如果同时提供了Helpfile与Context,用户可以按F1键来查看与Context相应的帮助主题。
如果用户单击输入框中的【确定】按钮,则InputBox函数返回文本框中的内容。
如果用户单击【取消】按钮,则此函数返回一个长度为零的字符串(“”)。
如果要省略某些位置参数,则必须加入相应的逗号分界符。
例如,要指定实例6.1中输入框的位置,而缺省输入框的初始值,则语句如下:word =InputBox(“请输入要在窗体中显示的内容:”,“输入”,200,200)。
6.1.2 消息框MsgBox函数用来产生一个消息框。
第6章创建和使用对话框对话框是一种用户界面,几乎每一个Windows程序都使用对话框与用户进行交互。
对话框可能是一个简单的只含有OK按钮的消息框,也可以是一个复杂的数据输入表单。
对话框上有一些方便用户输入的控件,对话框依靠这些控件与用户进行交互,其实质是一个接收消息的窗口。
在本章节我们主要讲述模式对话框和无模式对话框的原理和使用方法,下一章将详细介绍各种控件的使用。
你将学习创建一个对话框,使用对话框模板编辑一个对话框资源,并在程序中调用对话框的方法。
6.1 对话框的基本原理6.1.1 对话框的工作原理在创建一个对话框之前,我们先来了解一下对话框是如何工作的,对话框的数据来自三方面:对话框资源、对话框对象、和一个文档对象:1.对话框资源对话框资源是一个用户输入或取得数据的图形界面。
这个图形界面是使用Develop Studio的对话框编辑器在对话框模板上创建的,程序员可以在对话框模板上增加并编辑控件,生成对话框资源。
当应用程序运行时,就可以得到一个对话框。
2.对话框对象MFC使用CDialog类来描述对话框,它是CWnd类的派生类。
在CWnd类的基础上增加了数据交换的功能。
当创建一个新的对话框资源后,使用ClassWizard可以创建一个对话框类的派生类。
对话框对象实现了对话框和应用程序之间的通信。
在应用程序中定义一个对话框对象后,在对话框显示前,可以通过访问对话框对象的成员变量为一个对话框的控件初始化,在对话框关闭后,可以通过访问对话框对象的成员变量获得用户的输入数据。
3.文档对象MFC使用文档对象描述应用程序处理的数据,用户输入的数据要进一步的处理,通常要先存贮到文档对象中。
例如:一个学生记录处理的应用程序,用户通过一个对话框输入学生记录并贮存到一个文件中。
应用程序的处理顺序是:用户在对话框中输入信息,通过对话框对象得到输入信息,将输入信息整理到文档对象中,使用序列化函数将文档对象存贮到一个文件中,所以文档对象扮演了一个很重要的数据交换的角色。
第六章窗口与控件窗口是应用程序与用户交流的主要界面。
用它可以显示系统的有关信息,响应用户的鼠标和键盘输入等等。
在这一节中我们将利用PowerBuilder的应用模板功能来创建一个应用程序,利用这个程序来介绍窗口的有关概念和操作。
首先我们利用系统的应用模板功能创建一个应用程序:单击FILE菜单的NEW菜单项,系统弹出SELECT NEW APPLICATION LIBRARY对话框,用来选择一个对象库,这里在D:\DATABASE目录下创建一个新的名为SAMPLE 的对象库,然后单击“保存”按钮,在接下来的SAVE APPLICATION对话框中给新的应用对象同样起名为SAMPLE,然后单击OK按钮确定,系统弹出对话框询问是否需要创建应用模板,这里选择“是”,接着系统就开始为我们生成一个多文档接口的应用程序,APPLICATION画板中显示的就是系统自动帮我们创建好的一些对象(图6-1)。
从对象的图标可以看出这些对象都是窗口和菜单,接下来就以这里的窗口对象为例介绍窗口的有关概念和操作。
图6-16.1 窗口的类型6.2 窗口的常用操作6.3 控件6.1 窗口的类型PowerBuilder提供了六种不同类型的窗口,它们的用途各不相同,下面分别说明:第一种要介绍的是MAIN类型的窗口,它的特点是可以不依赖于任何其它的窗口,可以独立地存在,一个应用程序中可以有多个MAIN窗口,你可以在需要的时候在程序中用OPEN函数打开其中的任意一个。
此外在MAIN窗口中可以放置需要的各种控件。
单击POWERBAR工具条上的WINDOW按钮,选中W-GENAPP-SHEET窗口后单击OK按钮确定所做的操作,然后在WINDOW画板中的窗口对象上单击鼠标右键,选中弹出的菜单的PROPERTIES菜单项,在弹出的WINDOW对话框中注意WINDOW TYPE一栏,可以发现W-GENAPP-SHEET窗口就是MAIN类型的,在其中就可以放入各种控件。
学习目标:✧掌握CommonDialog。
✧掌握文件操作相关的对话框。
✧理解打印对话框。
6.1对话框:对话框是一种用户界面接口,用于同用户进行交互,完成一些特定的任务,简单的对话框有对用户操作进行提示的对话框,对重要操作要求用户进行决定的交互对话框等。
这类任务能被独立出来,作为通用的交互处理过程。
这些能被独立出来作为通用交互过程的任务常见如下一些:(1)文件选取。
(2)保存设置。
(3)路径选取。
(4)字体选取。
(5)颜色选取。
(6)打印设置。
(7)打印预览框。
在.NET中这些组件是在monDialog的基础上发展而来。
6.1.1Common pialog:CommonDialog是.NET中对话框组件的基础,它是System.Windows.Forms命名空间下的一个抽象类,在程序中不能直接使用。
CommonDialog公开了2个方法和一个属性,即:ShowDialog()/ShowDialog(IWin32Window)方法和Reset()方法以及Tag属性。
ShowDialog是用于显示对话框。
ShowDialog()有一个重载形式:ShowDialog(IWin32Window),IWin32Window在这里指一个窗口句柄,在调用中,这个参数应该被赋值成要显示的对话框的父窗体。
注意:句柄是Window中的一个常用词语,可以把它理解为一个标识符号,只是这个标识符号是一个数字。
相应的窗口句柄就是窗口的标标识符。
Reset方法:使用过程中可能改变初始值,当需要让所有的初值回到原来的状态时,调用Reset能达到目的。
Tag属性:Tag没有具体含义,它可以让用户在对话框控件中存储、维护自己的数据。
这个数据由用户自己的代码解释。
对话框的返回值(ShowDialog的返回值):对话框通过调用ShowDialog()调用后,返回一个类型为DialogResult 值,其中DialogResult.OK指出用户成功完成了操作,成功选取了文件等。
使用这个值可以判断操作是否成功。
DialogResult.OK在不同的对话框是代表不同的按钮。
6.1.2对话框的一般调用过程:组件的一般使用方法:首先,获取一个组件对象。
然后,修改这些组件的参数的初始值。
最后,调用ShowDialog显示这个组件的工作窗体,并判断返回值DialogResult以决定程序的下一步流程。
并且,在使用过程中可以使用Tag属性存储用户自己的值,还可以使用Reset方法让这些组件回到初始状态。
6.2文件操作相关的对话框:在.NET中文件对话框有2种:打开文件对话框(OpenFileDialog)、保存文件对话框(SaveFileDialog),它们都由FileDialog发展而来。
FileDialog是实现了文件对话框的基本功能,它有如下一些属性、方法和事件。
AddExtension和DefaultExt:AddExtension指出在打开和保存文件的时候,用户如果忽略扩展名,指出是否自动加上扩展名(即DefaultExt)。
CheckFileExists:检查文件是否存在。
FileName:文件对话框选择的文件名。
FileNames:如果对话框允许多选,该值返回所有被选中的文件名。
Filter:用于筛选文件的一个字符串。
FilterIndex:当Filter中有多个筛选项时,指出对话框中默认使用哪一个,当不指定时将使用第一个。
InitialDirectory:指出对话框打开的初始路径,默认情况下初始路径是应用程序的执行路径,可以使用System.Environment指定常用的系统路径。
RestoreDirectory:指出对话框在关闭的时候是否恢复到初始路径。
SuppprtMultiDottedExtensions:是否支持形如aaa….txt的名称。
Title:窗体显示时的标题。
ValidateNames:指出是否验证名称合乎Win32中的命名规则。
6.2.1打开文件对话框和保存文件对话框的使用:6.2.2文件夹对话框(FolderBrowerDialog):文件夹对话框的属性:RootFolder:初始根路径SelectedPath:成功操作后选择的路径ShowNewFolderButton:是否显示新建文件夹按钮。
6.3ColorDialog(颜色对话框):ColorDialog组件是一个预先配置的对话框,它允许用户从调色板选择颜色以及将自定义颜色添加到该调色板。
ColorDialog的属性和方法:Color:用于保存该对话框中选择的颜色。
该属性一般在对话框调用返回后被读取。
AllowFullOpen:确定是否只使用预定义颜色。
如果AllowFullOpen属性设为false,则将禁用“规定自定义颜色”按钮,并且用户只能使用调色板中的预定义颜色。
SolidColorOnly:是否使用抖色。
如果SolidColorOnly属性设置为true,则用户无法选择抖色。
注意:抖色是一种色彩处理方式,它可将各种由像素所构成的图案加以扩散、趋近成想要的色彩。
FullOpen:指出默认状态下是否显示编辑颜色框右边的部分。
6.4字体设置对话框(FontDialog):FontDialog的属性:AllowScriptChange:AllowScriptChange用于控制该下拉框是否能够显示操作系统默认的字符集之外的字符集合。
AllowVectorFonts:指示对话框允许选择矢量字体(字体有矢量字体,点阵字体等之分)。
AllowVerticalFonts:指出字体列表框中是否能显示垂直排列的字体。
FontMustExist:指出字体区域,当用户选择、输入不存在的字体时,对话框是否提示。
MaxSize和MinSize:指定能使用的字体的最大和最小值。
当用户输入超过此范围的值时对话框将提示用户“大小必须介于……之间”。
ShowApply:指出是否显示应用按钮。
ShowColor:指出是否显示颜色下拉框。
ShowEffects:指出是否显示效果组内的选项。
当对话框返回时,可以使用Colorado属性检索选取的字体的颜色,用Font属性检索选取的字体。
6.5打印对话框:有多个和打印相关的对话框,如PrintDialog,PageSetupDialog等。
这些对话框和一些特定的类相协作,可以完成程序中的打印相关的功能。
6.5.1打印文档(PrintDocument):PrintDocument用于控制如何具体打印一个文档,PrintDocument的属性和方法如下:DefaultPageSettings:默认页设置。
DocumentName:获取或设置打印文档时要显示的文档名,该名称将在打印状态对话框或打印队列中显示。
PrintSettings:代表了PrintDialog对话框中设置的所有属性,同样也可以调整它包含的属性。
Print方法:指出开始打印文档。
BeginPrint事件:在条用PrintDialog方法时并且在打印文档的第一页之前发生。
EndPrint事件:打印完文档的最后一页时发生。
PrintPage:每开始打印一个新的页面时发生。
6.5.2打印页面设置对话框(PageSetupDialog):PageSetupDialog对话框用于调整打印页面的相关属性。
PageSetupDialog的一些属性和方法:AllowMargins:指示是否启用对话框的边距部分。
如果不启用该组下所有的输入框将不可用。
AllowOrientation:该值指示是否启用对话框的方向部分。
AllowPaper:该值指示是否启用对话框的纸张部分。
AllowPrinter:该值指示是否启用“打印机”按钮。
MinMargins:指示允许用户选择的最小边距。
PrinterSettings:指下面PrintDialog对话框中将要介绍的所有属性集合。
6.5.3打印对话框(PrintDialog):打印对话框用于打印文档的时候,将打印机及其相关参数进行调整,它的功能同一般程序里的打印设置功能没有什么不同。
打印对话框常用属性:AllowCurrentPage:该属性用于控制中部“页面范围”中“当前页面”选项是否有效,当设置为False时该选项变为非使用状态的灰色。
AllowPrintToFile和PrintToFile:在选择“打印机”组中右上角有一个可选框“打印到文件”,AllowPrintToFile属性控制这个可选框是否启用。
PrintToFile则指出默认情况下该选择框是否被选中。
AllowSelection:在选择“页面范围”组中部有一个可选框“选定范围”,本属性控制这个可选框是否启用。
AllowSomePages:同AllowSelection相似,AllowSomePages控制“页码”项。
ShowNetwork:在低版本的操作系统中指出是否显示网络选项,在高版本(win98,win2000或更高)中,不用设置此值。
UseEXDDialog:默认情况下,对话框使用扩展的打印机对话面板,修改本属性可以明确指出使用什么样的对话框面板:设置为True则使用扩展面板,设置为False则使用非扩展面板。
6.5.4打印预览对话框(PrintDialog):PrintPreviewDialog用于显示PrintDocument在打印时的外观,该控件包含内置的打印、放大、显示一页或多页和关闭此对话框的按钮。
PrintPrewDialog的主要属性是Document,用于设置要预览的打印文档。
6.6对话框的综合应用(编辑器):实现一个文本编辑器基本功能,用以演示所有对话框咋实际项目中的使用,该文本编辑器有以下功能:打开文件:保存文件:可设置选定的文本的颜色:可设置选定的文本的字体:可设置默认的工作路径:可在设置页面格式后直接打印:可在设置打印机后直接打印:可直接打印。