
二级特训-通用对话框控件.doc
7页通用对话框控件通用对话框控件 在 VB 中,对话框是一种特殊的窗口,它通过显示和获取信息与用户进行交流,一个 对话框可以很简单,也可以很复杂,前面介绍的 MsgBox 和 InputBox 函数可以建立简单的 对话框,即信息框和输入框但是要定义的对话框较复杂时,将会花较多的时间和精力设 计和书写代码,为此,Visual Basic 6.0 提供了通用对话框控件,用其可以定义比较复杂 的对话框(通用对话框) 要把通用对话框控件加到工具箱中,可按如下步骤操作: (1)执行“工程”菜单中的“部件”命令,打开“部件”对话框 (2)选择“控件”选项卡,如图 1 所示,在控件列表框中选择“Microsoft Common Dialog Control 6.0” 图 1 部件对话框 (3)单击“确定”按扭,通用对话框即被添加到工具箱中,如图 2 所示在设计状态 下,CommonDialog 控件以图标的形式显示在窗体上,其大小不能改变,在程序运行 时,控件本身被隐藏图 2 通用对话框 通用对话框的默认名称(Name 属性)为 CommonDialogX(X 为 1,2,3……) 通用对话框控件为程序设计人员提供了几种不同类型的对话框,有文件对话框、打印 对话框、字体对话框、颜色对话框等。
利用这些对话框,可以获取所需要的信息,例如打 开文件、打印、存盘、选择颜色等对话框的类型可以通过 Action 属性设置,也可以使用说明性的 Show 方法来代替 Action 属性值Action 属性和 Show 方法如表 1: 表 1 Action 属性和 Show 方法 Action 属性Show 方法说明1ShowOpen显示文件打开对话框2ShowSave显示另存为对话框3ShowColor显示颜色对话框4ShowFont显示字体对话框5ShowPrinter显示打印机对话框6ShowHelp显示帮助对话框 通用对话框具有的主要共同属性为: (1)CancelError 属性:通用对话框里有一个“取消”按扭,用于向应用程序表示用户想 取消当前操作当 CancelError 属性设置为 True 时,若用户单击“取消”按扭,通用对话 框自动将错误对象 Err.Number 设置为 32755(cdlCancel)以便供程序判断若 CancelError 属性设置为 False,则单击“取消”按扭时不产生错误信息 (2)DialogTitle 属性:每个通用对话框都有默认的对话框标题,通过 DialogTitle 属性可由 用户自行设计对话框标题上显示的内容。
(3)Flags 属性:通用对话框的 Flags 属性可以修改每个具体对话框的默认操作,其值可 有 3 种形式,即符号常量、十六进制数和十进制数 (4)HelpCommand 属性:指定 Help 的类型 (5)HelpContext 属性:用来确定 Help ID 的内容,与 HelpCommand 属性一起使用,指 定显示的 Help 主题 (6)HelpFile 和 HelpKey 属性:分别用来指定 Help 应用程序的 Help 文件名和 Help 主题 能够识别的名字7.1.1 文件文件对话对话框的框的结结构构文件对话框有打开(Open)文件对话框和保存(Save)对话框,如图 3 所示为打开对 话框,在该对话框中用户可以打开一个文件供程序调用图 3 打开对话框 (1) DefaultEXT:设置对话框中默认文件类型,即扩展名该扩展名出现在“文件 类型”栏内如果在打开或保存的文件名中没有给出扩展名,将自动将 DefaultEXT 属InitDirFileName Filter性值作为其扩展名 (2) DialogTitle:此属性用来设置对话框的标题。
在默认情况下, “打开”对话框的 标题是“打开” , “保存”对话框的标题是“保存” (3) FileName:该属性值为字符串,用于设置和得到用户所选的文件名(包括路径 名) (4) FileTitle:该属性用来指定对话框中所选择的文件名(不包括路径) ,该属性与 FileName 属性的区别是:FileName 属性用来指定完整的路径,而 FileTitle 只指定文件 名 (5) Filter:该属性用来过滤文件类型,使文件列表框中显示指定的文件类型可以 在设计时设置该属性,也可以在代码中设置该属性Filter 的属性值由一对或多对文本 字符组成,每对字符串间要用“|”隔开,格式为:文件说明 1 | 文件类型 1 |文件说明 2 | 文件类型 2…… 例如要在打开对话框的“文件类型”列表框中显示如图 3 所示的文件类型,则 Filter 属性应设置为:CommonDialog1.Filter=文本文件 | *.txt | Word 文档 | *.doc (6) InitDir:该属性用来指定打开对话框中的初始目录如果要显示当前目录,则 该属性不需要设置。
【例 1】编写程序,建立“打开”和“保存”对话框 根据上述方法在窗体上画一个通用对话框,以属性的默认值 Name 属性取默认值,即 CommonDialog1,再建立两个命令按扭 Command1 和 Command2,然后编写两个事件过程:Private Sub Command1_Click()CommonDialog1.FileName=““CommonDialog1.Flags=vbOFNFileMustExistCommonDialog1.Filter=“All Files | *.* | (*.exe) | *.exe | (*.TXT)| *.TXT“CommonDialog1.FilterIndex=3CommonDialog1.DialogTitle=“Open File(*.EXE) “CommonDialog1.Action=1 '打开对话框If CommonDialog1.FileName=““ ThenMsgBox “ No file Selected“,37, “ Checking“ElseOpen Commondialog1.FileName For Input As #1Do While Not EOF(1)Input #1,a$Print a$LoopEnd IfEnd Sub Private Sub Command2_Click()CommonDialog1.CancelError=TrueCommonDialog1.DefaultExt=“TXT“CommonDialog1.FileName=“lbw.txt“CommonDialog1.Filter=“Text files(*.txt) | *.TXT | ALL Files(*.* _) | *.*“CommonDialog1.FilterIndex=1CommonDialog1.DialogTitle=“Save File As (*.TXT) “CommonDialog1.Flags=vbOFNOverwritePrompt Or vbOFNPathMustExistCommonDialog1.Acion=2 '保存对话框End SubOpen 对话框并不能真正“打开”文件,而仅仅是用来选择一个文件,至于选择以后的处理,包括打开、显示等,Open 对话框是没有能力完成的,前半部分用来建立 Open 对话框,设置对话框的各种属性;“Else”之后的部分用来对选择的文件进行处理。
7.1.2 “颜颜色色”对话对话框框“颜色”对话框的方法是 ShowColor,Aciton 为 3 的通用对话框,如图 4 颜色对话框, 在颜色对话框中提供了基本颜色和自定义颜色 “颜色”对话框的两个重要属性:Color 属性和 Flags 属性其中 Color 属性是“颜色” 对话框最重要的属性,它返回或设置选定的颜色当用户在调色板中设置了某颜色时,该 颜色值赋给 Color 属性 Color 属性用来设置初始颜色,并把对话框中选择的颜色返回给应用程序图 4 颜色对话框表 2 颜色对话框的 Flags 属性的取值 符号常量十进制值作用vbCCRGBinit1使得 Color 属性定义的颜色在首次显 示对话框时随着显示出来vbCCFullOpen2打开完整对话框,包括“用户自定义 颜色”窗口vbCCPreventFullOpen4禁止选择“规定自定义颜色”按扭vbCCShowHelp8显示一个 Help 按扭【例 2】在例.1 的窗体上增加命令按扭 Command3,用于打开颜色对话框,通过“颜 色”对话框设置窗体(Form1)的背景颜色 代码如下: Private Sub Command3_Click()CommonDialog1.Flags=vbCCRGBinitCommonDialog1.Color=BackColorCommonDialog1.Action=3Form1.BackColor= CommonDialog1.Color End Sub 为了设置或读取 Color 属性,必须将 Flags 属性设置为 1(vbCCRGBinit) 。
7.1.3 “字体字体”对话对话框框在 Visual Basic 中,字体通过字体(Font)对话框属性设置利用通用对话框控件, 可以建立一个字体对话框,并可以通过该对话框设置应用程序所需要的字体字体对话框 的主要属性: (1)CancleError,DialogTitle,HelpCommand,HelpContext,HelpFile 和 HelpKey 见前面 介绍 (2)Flags 属性:其属性值见表 表 3 字体对话框的 Flags 属性取值 符号常数属性值作用cdlCFScreenFonts1只显示屏幕字体cdlCFPrinterFonts2只列出打印机字体cdlCFBoth3列出打印机和屏幕字体cdlCFEffects256允许中划线、下划线和颜色 (3) Max 和 Min 属性:字体大小用点来度量在默认情况下,字体大小的范围为 1~2048 个点,用 Max 和 Min 属性可以指定字体大小的范围(在 1~2048 之间的整数) 但是在设置 Max 和 Min 属性之前,必须把 Flags 属性设置为 8192 (4) FontBold,FontItalic,FontName,FontSise,FontStrikeThru,FontUnderLine 这些属 性可以在字体对话框中选择,也可以通过程序代码赋值。
【例 7.3】用字体对话框设置文本框中显示的字体 在窗体上建立通用对话框 CommonDialog1、文本框 Text1、和命令按扭 Command1, 如图 5 所示在命令按扭中编写 Click 事件代码如下:图 5 初始界面Private Sub Command1_Click()CommonDialog1.Flags=cdlCFBoth or cdlCFEffects '设置 FlagsCommonDialog1.ShowFontIf CommonDialog1.FontName<>““ Then '如果选择了字体Text1.FontName= CommonDialog1.FontNameEnd If '下面设置文本框内的字体Text1.FontSize=CommonDialog1.FontSizeText1.FontBold=CommonDialog1.FontBoldText1.FontItalic=CommonDial。
