例6-3 把前面例6-1设计的“计算2”菜单在程序运行时,作为弹出式菜单显示出来。
首先按例6-1的方法设计“计算2”菜单,其Visible属性可以设置成False。然后添加如下事件过程。
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
PopupMenu Oper2, 2
End If
End Sub
程序运行后,当用户在窗体单击鼠标右键时,立即弹出Oper2菜单,如图6-10所示。

图6-10 弹出式菜单
一般快捷菜单是在用户按下鼠标右键时弹出的,所以PopupMenu方法应该用在MouseUp或MouseDown事件过程中,并且根据事件过程的Button参数判断是不是鼠标右键。
在图形用户界面中,对话框(DialogBox)是程序与用户进行交互的主要途径。它既可以用于输入信息,也可以用于显示信息。在Visual Basic应用程序中,可以使用三种对话框:预定义对话框、通用对话框和用户自定义对话框。
预定义对话框是系统定义的对话框,可以调用函数直接显示。调用预定义对话框的函数是前面已经介绍过的InputBox和MsgBox函数。本节将介绍通用对话框和用户自定义对话框的使用。
Visual Basic提供了一组基于Windows的标准对话框界面。用户可以充分利用通用对话框控件在窗体上创建六种标准对话框,它们分别为打开(Open)、另存为(Save As)、颜色(Color)、字体(Font)、打印机(Printer)和帮助(Help)对话框。
通用对话框不是标准控件,是Visual Basic提供的Active控件。Active控件是具有.OCX扩展名的文件,或一个可插入的对象。把通用对话框控件添加到工具箱的方法是:
(1)选择“工程”菜单中的“部件”命令打开部件对话框,如图6-11左所示。
(2)在“部件”选项卡中选中“Microsoft Common Dialog Control 6.0”。
(3)选择“确定”按钮。即可将“通用对话框”控件添加到控件工具箱中,如图6-11 右所示。

CommonDialog
图6-11 添加“通用对话框”
只要把通用对话框加到工具箱中,就可以像使用标准控件一样把它添加到窗体中。在设计状态,窗体上显示通用对话框图标,但在程序运行时,窗体上不显示通用对话框,直到在程序中用Action属性或Show方法激活而调出所需的对话框。
通用对话框只能用于应用程序与用户之间进行信息交互,是输入输出的界面,不能真正实现对文件的操作,如文件打开,存储,颜色设置,字体设置,打印等操作。如果想要实现这些功能还必须通过编写相应的代码才能实现。
1.通用对话框的基本属性
(1)Action功能属性
该属性直接决定打开对话框的类型。Action属性的取值及其含义如表6-5所示。
表6-5 Action属性
|
属 性 值 |
功 能 |
|
0––––None |
无对话框显示 |
|
1––––Open |
打开对话框 |
|
2––––Save As |
另存为对话框 |
|
3––––Color |
颜色对话框 |
|
4––––Font |
字体对话框 |
|
5––––Printer |
打印机对话框 |
|
6––––Help |
帮助对话框 |
该属性不能在属性窗口内设置,只能在程序中赋值,用于调出相应的对话框。
(2)DialogTitle(对话框标题)属性
该属性是通用对话框标题属性,可以是任意字符串。
(3)CancelError属性
该属性决定用户与对话框进行信息交互时,按下“取消”按钮时是否产生出错信息。
True :按下“取消”按钮时,出现错误警告。
False(缺省):按下“取消”按钮时,不会出现错误警告。
对话框被打开后,有时为了防止用户在未输入信息时便使用取消操作,可用该属性设置出错警告。该属性值在属性窗口及程序中均可设置。
通用对话框的属性除了在属性窗口和程序代码中设置外,还可以在其“属性页”对话框中设置。打开“属性页”对话框的方法是右键单击窗体上通用对话框控件,在弹出的快捷菜单中选择“属性”命令。通用对话框控件属性页对话框中有五个选项卡,可以分别对不同类型的对话框设置属性,如图6-12所示。
2.通用对话框的方法
除了Action属性,Visual Basic还提供了一组方法用来打开不同类型的通用对话框,如表6-6所示。
表6-6 通用对话框控件的方法列表
|
名 称 |
功 能 |
|
ShowOpen |
打开对话框 |
|
ShowSave |
另存为对话框 |
|
ShowColor |
颜色对话框 |
|
ShowFont |
字体对话框 |
|
ShowPrinter |
打印机对话框 |
|
ShowHelp |
帮助对话框 |
在程序运行时,通用对话框的Action属性被设置为1,就立即弹出打开文件对话框。“打开”对话框可以用来指定文件所在的驱动器、文件夹、文件名及文件扩展名。
对于打开文件对话框,除了一些基本属性需要设置以外,还要对下列属性进行设置。
(1)FileName(文件名称)属性
用于设置“文件名称”文本框中所显示的文件名,在程序中可用该属性值设置或返回用户所选定的文件名(包含路径名)。
(2)FileTitle属性
用于返回或设置用户所要打开文件的文件名,它不包含路径。
(3)Filter(过滤器)属性
用于确定文件列表中所显示文件的类型。该属性值可以是由一组元素或用“|”符号分开的分别表示不同类型文件的多种元素组成。指定Filter属性的格式为:
描述1|通配符1|描述2|通配符2…
例如:All Files|*.*|Text Files(*.TXT)|*.txt
(4)FilterIndex(过滤器索引)属性
用来指定在文件类型列表框中显示的缺省的文件类型。对于在Filter中定义的一组文件类型,FilterIndex的值依次为1、2、3…,缺省值为1。
例如:对于Filter中的定义,如果设置FilterIndex的值为2,那么文件列表框只显示当前目录下的文本文件(*.TXT)。
(5)InitDir(初始化路径)属性
用于设置打开对话框初始的文件目录,并返回用户所选择的目录。若不设置该属性,系统默认当前目录。
(6)Flags(标志)属性
用于设置对话框的一些选项,常用的设置值如表6-7所示。
表6-7 Flags属性值描述
|
值 |
常 数 |
功 能 |
|
&H2 |
cdlOFNOverwritePrompt |
“另存为”对话框中的文件已经存在时,产生一个信息框,询问用户是否覆盖已有文件 |
|
&H800 |
cdlOFNPathMustExist |
指定只能输入有效路径。输入非法路径时,显示一个警告信息 |
|
&H1000 |
cdlOFNFileMustExist |
当用户输入非法的文件名时,要显示一个警告 |
|
&H2000 |
cdlOFNCreatePrompt |
当文件不存在时对话框要提示创建文件 |
例6-4 打开对话框的应用。
设计一个程序,界面如图6-13所示。程序运行时,单击“打开”按钮,弹出如图6-14所示的“打开图形文件”对话框,对话框的文件类型限定为图形文件,当用户选择了所需的图形文件后,关闭对话框,程序界面显示如图6-15所示,将用户选择的图形文件显示在窗体上。

图6-13 程序设计界面1

图6-14 “打开图形文件”对话框窗口

图6-15 程序显示图形文件的界面
操作步骤:
(1)新建一个标准EXE工程。
(2)设计窗体
在窗体中添加一个命令按钮、一个图像控件和一个通用对话框控件。按表6-8设置窗体及其上面各控件的主要属性。