通用对话框就是经常使用的、在打开文件和保存文件时候弹出的对话框。但是在工具栏里没有该对话框,需要手动添加。选择Microsoft Common Dialog Control 6.0,单击确定即可,如图2-28所示。
图2-28 添加通用对话框
在菜单小节中,我们设置了文件的“打开”和“保存”菜单。本节将介绍如何使用通用对话框打开和保存文件。要在窗体中添加通用对话框的部件。
首先,保存文件。在这里,我们保存使用PictureBox控件绘制的翼型结果。在窗体编辑区,单击“文件”里的“保存”菜单,进入“保存”菜单的代码编辑工作。增加如下代码:
Private Sub mSave_Click() Me.CommonDialog.InitDir = App.Path Me.CommonDialog.Filter = "*.bmp|*.bmp" Me.CommonDialog.ShowSave If Me.CommonDialog.FileName <> "" Then TFileName = Me.CommonDialog.FileName Me.CommonDialog.FileName = "" SavePicture Me.WorkPic.Image, TFileName MsgBox "文件保存完毕!", vbOKOnly, "谢谢使用" End If End Sub
保存的图片文件如图2-29所示。
图2-29 保存图片结果
(a)正视图;(b)俯视图
通用对话框除了有打开文件、保存文件的功能外,还包含了颜色对话框。通用对话框用的颜色采用RGB颜色,RGB分别代表红(red)、绿(green)和蓝(blue)。通常,可指定red、green、blue的数值,再通过调用RGB(red,green,blue)函数来实现颜色的定义。其中,red、green、blue的数值范围都是[0,255],正常的RGB颜色的有效范围为0~16 777 215(&HFFFFFF&)。用十六进制数按照下述语法来指定颜色:&HBBGGRR&,其中,BB指定蓝色的值,GG指定绿色的值,RR指定红色的值。要从一个RGB颜色中调取出需要的red、green、blue数值,就需要进行与运算。在Fun模块中添加如下代码:
Public Function RedFromRGB(ByVal rgb As Long)As Integer RedFromRGB = & HFF& And rgb End Function Public Function GreenFromRGB(ByVal rgb As Long)As Integer GreenFromRGB = (& HFF00& And rgb)\ 256 End Function Public Function BlueFromRGB(ByVal rgb As Long)As Integer BlueFromRGB = (& HFF0000 And rgb)\ 65536 End Function
现在进行MSChart控件下曲线颜色的更换。为简化代码,考虑仅有一条曲线的情况,也就是只有一个Series,选择曲线调用过程SeriesSelected调出颜色对话框,添加如下代码以更换曲线颜色:
Private Sub MyChart_SeriesSelected(Series As Integer, MouseFlags As Integer, Cancel As Integer) Dim Red As Integer Dim Green As Integer Dim Blue As Integer Me.CommonDialog.ShowColor Red = Fun.RedFromRGB(Me.CommonDialog.Color) Green = Fun.GreenFromRGB(Me.CommonDialog.Color) Blue = Fun.BlueFromRGB(Me.CommonDialog.Color) With Me.MyChart.Plot.SeriesCollection(1).DataPoints(-1).Brush.FillColor .Red = Red .Green = Green .Blue = Blue End With End Sub
其运行结果如图2-30和图2-31所示。
图2-30 更换颜色操作显示
图2-31 更换颜色运行结果