http://topic.csdn.net/u/20080904/13/dd34c811-3f4c-4456-8521-e7f6d9c3d8d0.html
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'过 程 名: subCurveInit
'作 用: 初始化MSChart,使其满足作图要求
'说 明: 作图时如下:
' 当设置图形为二维散点图,画一条曲线时需定义一个二维数组MyData(0 to n,0 to 1),赋值方法如下
' ******* X轴********y轴*******
' MyData(0,0)=1:MyData(0,1)=1
' MyData(1,0)=1:MyData(1,1)=1
' .........
' MyData(n,0)=1:MyData(n,1)=1
' 当为两条曲线时定义MyData(0 to n,0 to 3),赋值如下
' 第一条:**X轴***y轴******第二条:*****X轴******y轴*******
' MyData(0,0)=1:MyData(0,1)=1:MyData(0,2)=1:MyData(0,3)=1
' MyData(1,0)=1:MyData(1,1)=1:MyData(1,2)=1:MyData(1,3)=1
' .........
' MyData(n,0)=1:MyData(n,1)=1:MyData(n,2)=1:MyData(n,3)=1
' 当为多条曲线的时候依此类推定义Mydata数组
' 设置曲线相关属性可对.Plot.SeriesCollection(x)的子属性进行操作完成.(x为第几条曲线)
' 最后令.ChartData = MyData即可
'修改历史:
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Sub subCurveInit(Optional intAxisXMax As Integer, Optional intAxisXMin As Integer)
'//判断是否需要修改X轴显示范围,用于动态显示
With frmMain.chaCurve
If intAxisXMax <> 0 Then '//是否需要修改最X轴最大值
.Plot.Axis(VtChAxisIdX).ValueScale.Maximum = intAxisXMax '//X轴最大值
If intAxisXMax <> 0 Then '//是否修改X轴最小值
.Plot.Axis(VtChAxisIdX).ValueScale.Minimum = intAxisXMin '//X轴最小值
End If
Else '//如果无需修改X轴最大或最小值,进行以下初始化工作
.TitleText = "温度/时间" '//标题
.Title.VtFont.VtColor.Set 255, 255, 0 '//标题颜色
'//对两条曲线的颜色和粗细设置
.ColumnCount = 4 '//当设置图形为二维散点图时.一条曲线需两个Column,例如两条曲线时,只需对Column=1和3操作,就可完成各自属性设置
.Plot.SeriesCollection(1).Pen.VtColor.Set 0, 0, 255 '//第一条为理想曲线,设置为蓝色
.Plot.SeriesCollection(1).Pen.Width = 10 '//设置为较细
.Plot.SeriesCollection(3).Pen.VtColor.Set 255, 0, 0 '//第二条为实际曲线,设置为红色
.Plot.SeriesCollection(3).Pen.Width = 10 '//设置为较细
'//设置X,Y轴不自动缩放,固定大小
.Plot.Axis(VtChAxisIdX).ValueScale.Auto = False
.Plot.Axis(VtChAxisIdY).ValueScale.Auto = False
'// 设置X轴的最大值和最小值
.Plot.Axis(VtChAxisIdX).ValueScale.Maximum = 250 '//X轴最大值
.Plot.Axis(VtChAxisIdX).ValueScale.Minimum = 0 '//X轴最小值
'// 设置Y轴最大值和最小值
.Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 100 '//Y轴最大值
.Plot.Axis(VtChAxisIdY).ValueScale.Minimum = -50 '//Y轴最小值
'//设置网格
.Plot.Axis(VtChAxisIdX).ValueScale.MajorDivision = 25 '//X轴主要网格数量
.Plot.Axis(VtChAxisIdY).ValueScale.MajorDivision = 15 '//Y轴主要网格数量
.Plot.Axis(VtChAxisIdX).ValueScale.MinorDivision = 5 '//X轴次要网格数量
.Plot.Axis(VtChAxisIdX).AxisGrid.MinorPen.Style = VtPenStyleNull '//X轴次要网格不显示
.Plot.Axis(VtChAxisIdY).ValueScale.MinorDivision = 0 '//Y轴次要网格数量
.Plot.Axis(VtChAxisIdX).AxisGrid.MajorPen.Style = VtPenStyleSolid '//X轴网格为实线
.Plot.Axis(VtChAxisIdY).AxisGrid.MajorPen.Style = VtPenStyleSolid '//Y轴网格为实线
'//设置坐标系在MSChart控件框中的大小
.Plot.AutoLayout = False '//改为手动设置大小
.Plot.LocationRect.Min.X = 0
.Plot.LocationRect.Min.Y = 0 '//设置最小坐标位置为0,即坐标系顶部和左边都靠着MSChart的边框
.Plot.LocationRect.Max.X = .Width
.Plot.LocationRect.Max.Y = .Height '//设置最大值为MSChart边框的长和宽,使坐标系右边和底部靠着边框
.Plot.UniformAxis = False '//指定图表的所有值坐标轴的单位刻度不一致(X,Y轴坐标不需要一致).
'//设置图形类型
.ChartType = VtChChartType2dXY '//设置图形为二维散点图
.ChartData = MyData '//可有可无,目的是防止初始显示时曲线框内显示杂乱曲线
End If
End With
End Sub