公共对话框控件的应用
#1 第一步:引入公共对话框控件
新建一工程后,选择“工程”菜单中的“部件”,在出现的部件对话框中选择“Microsoft CommonDialog Control 6.0”(如果是VB 5则是5.0),单击“确定”按钮,这时公共对话框控件便被添加到工具箱中了。然后双击该控件即可引入到当前工程中,将其名称改为CD。
#1 第二步:设置界面
添加6个CommandButton控件,将其Caption属性分别设置为:“打开文件”、“另存为”、“选择颜色”、“选择字体”、“打印”和“帮助”。然后调整好控件的位置,其界面如^01020501a^。
#1 第三步:加入程序代码
双击“打开文件”按钮,加入如下代码:(黑体部分为系统自动生成,下同)
Private Sub Command1_Click()
'显示打开文件对话框
CD.DialogTitle = “请选择要打开的文件”''设置对话框的标题
CD.Flags = cdlOFNHideReadOnly '隐藏对话框中的“以只读方式打开”复选框
CD.Filter =“文本文件|*.txt|所有文件|*.*” '设置过滤器
CD.FilterIndex = 1 '设置默认过滤器
CD.ShowOpen '显示打开文件对话框
If CD.FileName = “” Then '如果用户单击了“取消”按钮
Exit Sub '退出过程
Else
MsgBox “你选择打开的文件是:” & CD.FileName '显示所选择文件的路径
End If
End Sub
CD.Filter = “文本文件|*.txt|所有文件|*.*”这句代码的作用是只显示所设定的扩展名的文件。*.txt显示所有的文本文件;而*.*则显示所有的文件。
另存为对话框的程序代码与打开文件对话框的程序代码相似,只需将CD.ShowOpen改为CD.ShowSave即可。
双击“选择颜色”按钮,加入如下代码:
Private Sub Command3_Click()
'显示选择颜色对话框
CD.ShowColor '显示颜色对话框
Me.BackColor = CD.Color '将窗体的背景色设置为所选择的颜色
End Sub
双击“选择字体”按钮,加入如下代码:
Private Sub Command4_Click()
'显示字体对话框
CD.Flags = cdlCFEffects Or cdlCFBoth Or cdlCFNoFaceSel
CD.ShowFont '显示字体对话框
End Sub
双击“打印”按钮,加入如下代码:
Private Sub Command5_Click()
'显示打印对话框
CD.Flags = cdlPDPageNums Or cdlPDHidePrintToFile Or cdlPDUseDevModeCopies
CD.ShowPrinter '显示打印对话框
End Sub
注意:只有安装了打印机驱动程序才能显示打印对话框。
双击“帮助”按钮,加入如下代码:
Private Sub Command6_Click()
'显示帮助文件
CD.HelpFile = “c:\windows\windows.hlp” '设置要显示的帮助文件的路径
CD.HelpCommand = cdlHelpContents '以目录方式显示帮助文件
CD.ShowHelp '显示帮助文件
End Sub
#1 总结
打开文件:虽然能显示打开文件对话框,但是不能真正实现文件的打开,但可以使用FileName所返回的值(文件路径)来编写打开文件的代码。
另存为:同打开文件一样,并不能真正保存文件。
选择字体:可以通过取得字体对话框所返回的值来设置字体。读者可以加入一个Text控件,然后在显示字体对话框的程序代码中加入如下代码:
…
CD.ShowFont
Text1.FontName = CD.FontName '字体
Text1.FontSize = CD.FontSize '字体大小
Text1.FontBold = CD.FontBold '粗体
Text1.FontItalic = CD.FontItalic '斜体
Text1.FontUnderline = CD.FontUnderline '下划线
Text1.FontStrikethru = CD.FontStrikethru '删除线
Text1.ForeColor = CD.Color '颜色
运行程序后,点击“选择字体”,出现选择字体对话框,进行设置后,单击“确定”即可。
VB的公共对话框控件为我们编程带来了很多方便,让编程变得更加容易。希望各位灵活的使用该控件,做出更美观、功能更强大的应用程序来。如果你在阅读本文后有什么想法或有什么疑问,欢迎来信与我交流,我的电子邮箱地址是:vber@21cn.com。