您现在的位置:首页 >> 网络教学 >> 界面设计 >> 内容

对话框设计及其实例

时间:2009-6-19 9:43:47 点击:4426

 
    对话框是windows中的一种很重要的界面,和一般窗口不同,对话框的大小不能改变,所以和改变窗口大小的组成都没有,如不能有最大化按钮和最小化按钮,无控制菜单,无边框等。Visual Basic中的对话框分为3种类型,即预定义对话框、自定义对话框和通用对话框。预定义对话框是指由MsgBox和InputBox函数建立的简单的对话框,如果需要比输入框或信息框功能更复杂的对话框,则只能由用户自己建立,但如果使用平常界面的建立方法制作对话框,将会花费较多的时间和精力。为此,Visual Basic 6.0提供了通用对话框控件,用它可以快速地制作较为通用的对话框。如打开、保存对话框、颜色对话框、字体对话框和打印对话框等。
一、通用对话框控件
通用对话框控件不是标准控件,缺省情况下,工具箱中无该控件,添加该控件的方法是:通过“工程”菜单中的“部件”命令,在对话框中添加“Microsoft common dialog control 6.0”部件,则能在工具箱中添加通用对话框控件。
通用对话框可以提供六种形式的对话框。在代码中可通过设置action属性或调用该控件的show方法来产生不同的对话框,具体设置如下表所示:
表8.17  通用对话框的属性及其设置
Action属性值
对话框类型
方法
1
打开文件(open)
ShowOpen
2
保存文件(save as )
ShowSave
3
选择颜色(color)
ShowColor
4
选择字体(font)
ShowFont
5
打印(print)
ShowPrinter
6
帮助文件(help)
showHelp
如:commondialog1.action=1或commondialog1. showopen就为对话框commondialog1指定为“打开文件”类型的对话框。
二、文件对话框
文件对话框包括打开(Open)文件对话框和保存文件(Save As)对话框,如图8.26所示:


图8.26  “打开”对话框的组成


图8.27  “另存为”对话框的组成
文件对话框主要用来获取用户指定的文件信息并供程序使用,如:“D:\myword.doc”,但是需注意的是对话框本身并不提供打开文件和另存为功能,这些功能需另外编写代码。
使用通用对话框控件建立“打开”和“保存文件”对话框时,可对通用对话框控件进行设置的主要属性及其含义见表8.18:
表8.18  通用对话框控件建立文件对话框的常用属性及含义
属性
含义
DefaultExt
设置对话框缺省的文件扩展名。当开或保存一个没有扩展名的文件时,自动给该文件指定由 DefaultExt 属性指定的扩展名
DialogTitle
设置对话框的标题。在缺省情况下,“打开”对话框的标题是“打开”;“保存”对话框的标题是“另存为”
FileName
设置或返回要打开或保存文件的路径及文件名。可以设置默认打开或保存的文件名和返回用户在对话框中所选文件的路径和文件名
FileTitle
返回用户所选文件的文件名,但不包含路径
Filter
设置对话框的文件列表框中显示的文件的类型
Filter属性由一对或多对字符串组成,每对字符串包括文字说明和过滤器两部分。
格式:通用对话框控件名称.Filter =“文字说明|过滤器1|文字说明|过滤器2……”
举例:
CommonDialog1.Filter = "All Files|*.*|(*.doc)|*.doc|(*.txt)|*.txt"
文件列表框中显示如图8.28所示的列表
FilterIndex
设置默认的过滤器。用Filter属性设置好过滤器后,每个过滤器都有一个值,第一个过滤器的值为1,第二个过滤器的值为2,依此类推。FilterIndex属性用来设置默认的过滤器。
InitDir
用来指定对话框中的初始目录,如果未指定该属性的值,则是当前目录



图8.28  文件类型


表8.19  文件对话框中常用的Flags属性值及其含义

常量
功能
1
vbOFNReadOnly
显示“只读检查”选择框
2
vbOFNOverwritePrompt
如果用已有的文件名保存文件,则显示一个消息框,询问是否覆盖已有的文件
4
vbOFNHideReadOnly
不显示“只读检查”复选框
8
vbOFNNoChangeDir
保留当前目录
16
vbOFNShowHelp
显示一个help 按钮
256
vbOFNNoValidate
允许在文件中有无效字符
512
vbOFNAllowMultiselect
允许用户通过shift键与光标移动键组合或鼠标组合选择多个文件,各文件名用空格隔开
 


[例8-7]编一个能打开文件和保存文件的程序,打开时要求能将文件的内容在文本框中显示,保存时能将文本框中的内容存到.doc或.txt类型的文件,具有清空文本框的功能。界面设计如图8.29所示:


图8.29 程序主界面
操作步骤:
1.在当前窗体上放置通用对话框控件,然后插入三个按钮和一个文本框,具体属性设置如下表8.20所示。
表8.20  界面中各对象属性设置
控件
属性

属性

文本框
name
Text1


打开按钮
name
Command1
Caption
打开(&O)
保存按钮
name
Command2
Caption
保存(&S)
清空按钮
name
Command3
Caption
清空(&C)
窗体
Name
Form1
Caption
文件对话框
通用对话框
name
CommonDialog1



2.为“打开”按钮编写的程序代码
在单击“打开”按钮的事件过程中需要用CommonDialog1.Action = 1来启动“打开”对话框。当单击“打开”按钮后,显示“打开文件”对话框,如图8.30所示,


图8-30 “打开文件”对话框
并在该对话框中选择要打开的文件,则对话框的FileName属性的值便能获得所打开的文件的存储信息,即被用户选中的文件的盘符、路径和文件名信息被作为一个长字符串存储在该属性中,但此时并没有实际执行打开一个文件的操作,需通过文件处理方面的命令来实现文件的打开。具体代码如下:
Private Sub Command1_Click()
CommonDialog1.FileName = ""
CommonDialog1.InitDir = "d:\"
CommonDialog1.Flags = cdlOFNFileMustExist
CommonDialog1.Filter = "All Files|*.*|(*.doc)|*.doc|(*.txt)|*.txt"
CommonDialog1.FilterIndex = 4
CommonDialog1.DialogTitle = "打开文件"
CommonDialog1.Action = 1
If CommonDialog1.FileName = "" Then
MsgBox "您没选择文件", 37, "错误"
Else
Open CommonDialog1.FileName For Input As #1
Do While Not EOF(1)
Input #1, a$
Text1.Text = Text1.Text & Chr(13) + Chr(10) & a$
Loop
End If
Close #1
End Sub
上述粗体代码实现了打开操作。

3.为“保存”按钮编写的程序代码
与“打开”对话框一样,“保存文件”对话框也是利用FileName属性值获得所打开的文件的存储信息,而本身没有执行保存文件的功能,同样,用户可使用文件操作命令来编写实现保存文件的程序代码,具体代码如下:
Private Sub Command2_Click()
CommonDialog1.CancelError = False
CommonDialog1.InitDir = "d:\"
CommonDialog1.DefaultExt = "txt"
CommonDialog1.FileName = "mytest.txt"
CommonDialog1.Filter = "Document Files(*.doc)|*.doc_
|All Files(*.*)|*.*|Text Files(*.txt)|*.txt"
CommonDialog1.FilterIndex = 1
CommonDialog1.DialogTitle = "保存文件"
CommonDialog1.Flags = 2050
CommonDialog1.Action = 2
If CommonDialog1.FileName = "" Then
MsgBox "您没输入文件名", 37, "错误"
Else
Open CommonDialog1.FileName For Output As #1
a$ = Text1.Text
Write #1, a$
End If
Close #1
End Sub
上述粗体代码实现了保存操作。
4.为“清除”按钮编写的程序代码
Private Sub Command3_Click()
Text1.Text = ""
End Sub
三、颜色对话框
   颜色对话框用来设置颜色。通过使用通用对话框控件的ShowColor方法或将其action属性值设为3时可显示颜色对话框。如图8.31所示:


图8.31  “颜色”对话框
它具有与文件对话框相同的一些属性,包括CancelError、DialogTitle、HelpCommand、HelpContext、HelpFile和HelpKey,此外还有两个主要的属性,即Color属性和Flags属性。
颜色 (Color)属性用来设置或返回指定的颜色,每一个“颜色”值对应一个颜色,如红色为255,黄色为65535等。再如text1.forecolor=CommonDialog1.Color可将在颜色对话框中选定的颜色应用于文本框的前景色。
标志(flags)属性用来定义对话框的类型,具体功能详见表8.21:
表8.21 颜色对话框中的Flags属性

常量
功能
1
vbCCRGBInit
使color属性定义的颜色在首次显示对话框时显示出来
2
vbCCFullOpen
能显示自定义颜色窗口
4
vbCCPreventFullOpen
不显示自定义颜色按钮
8
vbCCShowHelp
显示一个help 按钮
[例8-8]:基于例8-7,增加一个设置文本框文本颜色的按钮,通过使用该按钮能够对文本框中文本改变颜色。程序界面如下:


图8.32 程序主界面
操作步骤:
1.在例8-7的窗体上增加按钮Command4,将其caption设为“颜色&Y”,同时把Form1的caption属性值设为“通用对话框”。
2. 编写颜色按钮的单击事件过程。具体代码如下:
Private Sub Command4_Click()
CommonDialog1.ShowColor
Text1.ForeColor = CommonDialog1.Color
End Sub
其中CommonDialog1.ShowColor用于将对话框定义成颜色对话框,并打开颜色对话框,Text1.ForeColor = CommonDialog1.Color是将用户选择好颜色并充当文本框的前景色。如将文字设置成红色,运行效果见图8.33。


图8.33  设置文本框的前景色



四、字体对话框
字体对话框是Windows界面中很重要的组成,它可以用来给文字指定字体、大小、颜色、下划线等。同样,可以通过使用通用对话框控件的ShowFont方法或将其action属性值设为4来显示该对话框,如图8.34所示:


图8.34  “字体”对话框
字体对话框具有Flags、FontBold、FontItalic、FontName、FontSize、FontStrikeThru和FontUnderline这些属性。其中flags属性确定了字体对话框的样式,在显示字体对话框之前必须设置flags标志,否则就会出现不存在字体等错误。有关字体对话框中常用的Flags属性值及其含义见下表8.22。
表8.22  字体对话框中常用的Flags属性值及其含义

常量
功能
1
vbScreenFonts
只显示屏幕字体
2
vbCFPrinterFonts
只显示打印机字体
3
vbCFBoth
显示打印机字体和屏幕字体
4
vbCFShowHelp
显示help按钮
256
vbCFEffects
允许下划线、中划线和颜色
512
vbCFApply
允许apply按钮
1024
vbCFANSIOnly
不允许使用windows字符集字体
262144
vbCFTTOnly
只显示TrueType字体


[例8-9]在例8-8的基础上,增加一个“字体”按钮,通过使用该按钮能够对文本框的文本进行字体、字号、字型等的设置。程序界面如下:


图8.35  通用对话框主界面
操作步骤:
1.在例8-8的窗体上增加按钮Command5,将其caption设为“字体&F”。
2. 编写字体按钮的单击事件过程。具体代码如下:
Private Sub Command5_Click()
CommonDialog1.Flags = 3 Or 256
CommonDialog1.Action = 4
Text1.FontName = CommonDialog1.FontName
Text1.FontSize = CommonDialog1.FontSize
Text1.FontBold = CommonDialog1.FontBold
Text1.FontItalic = CommonDialog1.FontItalic
Text1.FontUnderline = CommonDialog1.FontUnderline
Text1.FontStrikethru = CommonDialog1.FontStrikethru
End Sub
其中CommonDialog1.Action = 4用于将对话框定义成“字体”对话框,CommonDialog1.Flags = 3 Or 256  表示显示打印字体和屏幕字体,同时显示删除线和下划线检查框以及颜色组合框,如上图所示。
当选中某种字体、字形、大小等效果后,以上代码便实现将选中的属性赋值给文本框相应的属性。运行效果见图8.36:


图8.36  设置字体效果

五、打印对话框
打印对话框可以指定打印输出方式、选择打印机、设置打印范围和份数等,并可以配置或重新安装默认的打印机。通过使用通用对话框控件的ShowPrinter方法或将其action属性值设为5来显示该对话框,如图8.37所示:


图8.37  “打印”对话框
打印对话框具有Flags、Copies、FromPage、ToPage、PrinterDefault、Max和Min这些属性。flags属性可设置对话框相应的功能,有关打印对话框中常用的Flags属性值及其含义见下表:
表8.23  字体对话框中常用的Flags属性值及其含义

常量
功能
0
vbPDAllPages
显示“所有页”选项按钮
1
vbPDselection
显示“选定范围”选项按钮
2
vbPDPageNums
显示“页”选项按钮
4
vbPDNoSelection
禁止“选定范围”选项按钮,见图
8
vbPDNoPageNums
禁止“页”选项按钮
32
vbPDPrintToFile
显示“打印到文件”复选框
64
vbPDPrintSetup
显示“打印设置”对话框


其它属性的功能见表8.24:
表8.24 字体对话框中其它属性功能
属性
功能
Copies
返回打印份数
FromPage
开始打印的页码
ToPage
打印的结束页码
HDC
分配给打印机的句柄
Max,Min
设置打印范围允许的最大和最小值
PrinterDefault
表示是否可以设置默认打印机,如果为True,则可以,反之不可以。

[例8-10]在例8-9的基础上,增加一个“打印”按钮,实现打印功能。程序界面如下:


图8.38 增加了“打印”按钮
操作步骤:
1.在例的窗体上增加按钮Command6,将其caption设为“打印&P”。
2. 在原有代码后面添加事件过程。具体代码如下:
Private Sub Command6_Click()
CommonDialog1.Flags = 4
CommonDialog1.Copies = 5
CommonDialog1.ShowPrinter
End Sub

注意:打印对话框只能通过Copies、FromPage、ToPage等属性返回在对话框中的设置值,而不能实现打印操作,如果要启动实际的打印过程,必须编写相应的程序代码。


六、帮助对话框
软件往往都会提供帮助功能,用于介绍软件功能及操作方法。通过通用对话框控件的ShowHelp方法或将其action属性值设为6可以显示帮助对话框,对话框通过HelpCommand 属性指定帮助的类型,用HelpFile属性来显示具体的帮助文件,但帮助文件需要用其它的工具制作。
在上述例中增加以下代码,单击窗体即可显示出记事本的帮助文档。
Private Sub Form_click()
CommonDialog1.HelpCommand = cdlHelpForceFile  '确定联机帮助的类型
CommonDialog1.HelpFile = "C:\WINDOWS\Help\notepad.hlp"
                                         '显示要帮助的文件名
CommonDialog1.ShowHelp
End Sub

作者:Admin  
相关文章
  • 没有相关文章
  • VB程序设计学习网站(赣南师范学院) © 2008 版权所有 All Rights Reserved.
  • 地址:江西省赣州市经济技术开发区 赣南师范学院数学与计算机科学学院 邮政编码:341000
    Email:ZQ188@163.com 技术支持QQ:87319633 移ICP备10086号
  • GnsySjxy! V2.4