图表由于其直观明了的特性,在实际 应用中十分很广泛。我们常常希望数据能通过图表来显示其特性。例如在
Delphi和C++Builder编程中,我们可以很方便地实现数据图表。MsChart(6.0或5.0版)是Windows系统中Visual studio自带的一个ACTIVEX控件,它功能强大,应用广泛,具有以下特点:
・
支持随机数据和随机数组,动态显示。
・
支持所有主要的图表类型。
・
支持三维显示。
MsChart
具有
45
个属性,
9
个方法,
49
事件,可灵活编程,可实现各类表的显示。
图
1
插入
MsChart
控件窗口
1 MsChart 应用编程
首先插入
MsChart
控件,如图
1
。
1.1 坐标系属性的设置
a
)纵轴初始化属性
Mschart
默认支持自动标准,将自动调整,可以缺省设置。
#include "mschart.h" //
添加相关的头文件
#include "vcplot.h"
#include "vcaxis.h"
#include "vcvaluescale.h"
CMSChart m_Chart;//m_Chart
为图表变量
VARIANT var;
m_Chart.GetPlot().GetAxis(1,var)//
获取纵轴
//
设置是否支持自动标准
;
控件默认支持自动标准。
m_Chart.GetPlot().GetAxis().GetValuesScale().SetAuto(FALSE);
//
设置最大刻度为
M;
m_Chart.GetPlot().GetAxis().GetValuesScale().SetMaximum(M);
//
设置最小刻度为
m;
m_Chart.GetPlot().GetAxis().GetValuesScale().SetMinimum(m);
//
设置轴的等分数
D;
m_Chart.GetPlot().GetAxis().GetValuesScale().SetMajorDivision(D);
//
设置每等分的刻度线数
n;
m_Chart.GetPlot().GetAxis().GetValuesScale().SetMinorDivision(n);
b
)横轴初始化属性
VARIANT var;
m_Chart.GetPlot().GetAxis(0,var)//
获取横轴
其他属性设置跟纵轴相同。
1.2 数据显示
a
)设置标题栏和标签
m_Chart.SetTitleText(
“标题”
);//
设置标题栏
m_Chart.SetRowLabel((
“第
I
行”
);//
设置第
i
行标签
m_Chart.SetColumnLabel((
“第
j
列”
);//
设置第
j
列标签
b
)行列的显示布局
MSChart
的行列显示布局有其自身的特点:下面显示是一个行列
4
×
3
,即(四行,三列)的布局示意图(图
2
所示)。
图2 数据显示布局示意图
m_Chart.SetRowCount(4); //
行数为
4
m_Chart.SetColumnCount(3); //
列数为
3
c
)行列操作
//
操作行列
<i, j>
第
i
行、第
j
列
m_Chart.SetRow(i);//
第
i
行
m_Chart.SetColumn(j);//
第
j
行
m_Chart.SetRowLabel((
“第
i
行”
);//
设置第
i
行标签
CString str
=
”90.5”;
m_Chart.SetData((LPCTSTR(str)); //
设置行列
<i
,
j>
的显示数据
m_Chart.Refresh();//
刷新视图
d
)显示方式
获取当前的显示方式:
long nType
=
m_Chart.GetChartType()
;
设置显示方式:
m_Chart.SetChartType(0);//3D(
三维
)
显示
m_Chart.SetChartType(1);//2D(
二维
)
显示
m_Chart.Refresh();
其它常用组合方式为:
m_Chart.SetChartType(1|0) //2D
柱
(
条
)
形
,
m_Chart.SetChartType(0|0) //3D
柱
(
条
)
形
m_Chart.SetChartType(1|2) //2D
线条型
m_Chart.SetChartType(0|2) //3D
线条型
m_Chart.SetChartType(1|4) //2D
区域型
m_Chart.SetChartType(0|4) //3D
区域型
m_Chart.SetChartType(1|6) //2D
阶梯型
m_Chart.SetChartType(0|6) //3D
阶梯型
m_Chart.SetChartType(1|8) //2D
复
(
混
)
合型
m_Chart.SetChartType(0|8) //3D
复
(
混
)
合型
另外
,
在
2D
方式中
,
还有两类:饼型和
XY
型
m_Chart.SetChartType(14) //2D
饼型
m_Chart.SetChartType(16) //2DXY
型
e
)其他
其他属性,比如设置字体,颜色,对齐方式等。
图3 数据控件界面示意图
|