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