表格控件的简单介绍及函数说明
class ChartCtrl//表格控件
class CChartStandardAxis; //创建标准坐标轴
class CChartLogarithmicAxis; //创建对数坐标轴
class CChartDateTimeAxis; //创建时间坐标轴
class CChartCrossHairCursor; //随鼠标移动十字线
class CChartDragLineCursor; //横向或纵向可移动线
//Serie 一套数据表
class CChartPointsSerie; //离散点
class CChartLineSerie; //折线图
class CChartSurfaceSerie; //折线图包含下面所以的图形
class CChartBarSerie; //柱状图
class CChartCandlestickSerie; //烛台图
class CChartGanttSerie; //甘特图
CChartCtrl.h CChartCtrl表格对象
//---
//创建不同类型坐标系
CChartStandardAxis* p=CChartCtrl.CreateStandardAxis(EAxisPos axisPos);
CChartLogarithmicAxis* p=CChartCtrl.CreateLogarithmicAxis(EAxisPos axisPos);
CChartDateTimeAxis* p=CChartCtrl.CreateDateTimeAxis(EAxisPos axisPos);
//创建坐标轴后需要设定坐标类型 最大值最小值 如 p->SetMinMax(0, 100);
//创建十字
CChartCrossHairCursor* CreateCrossHairCursor(bool bSecondaryHorizAxis=false, bool bSecondaryVertAxis=false);
//创建可移动直线
CChartDragLineCursor* CreateDragLineCursor(EAxisPos relatedAxis);
//--
//创建不同类型数据组
CChartPointsSerie* CreatePointsSerie(bool bSecondaryHorizAxis=false, bool bSecondaryVertAxis=false);
CChartLineSerie* CreateLineSerie(bool bSecondaryHorizAxis=false, bool bSecondaryVertAxis=false);
CChartSurfaceSerie* CreateSurfaceSerie(bool bSecondaryHorizAxis=false, bool bSecondaryVertAxis=false);
CChartBarSerie* CreateBarSerie(bool bSecondaryHorizAxis=false, bool bSecondaryVertAxis=false);
CChartCandlestickSerie* CreateCandlestickSerie(bool bSecondaryHorizAxis=false, bool bSecondaryVertAxis=false);
CChartGanttSerie* CreateGanttSerie(bool bSecondaryHorizAxis=false, bool bSecondaryVertAxis=false);
//创建数据组后可以往数据组里面添加数据,PointsSerie、 LineSerie、 SurfaceSerie三种类型添加数据类型一致,另外两种略有不同 添加数据使用AddPoint()、AddPoints()函数。
//---
void RemoveSerie(unsigned uSerieId);
//! 删除指定数据组
void RemoveAllSeries();
//! 删除所以数据组
//--
//获取指定数据组对象
CChartSerie* GetSerie(size_t uSerieId) const;
//获取数据组的数量
size_t GetSeriesCount() const;
//--
//获取坐标轴对象
CChartAxis* GetBottomAxis() const;
CChartAxis* GetLeftAxis() const;
CChartAxis* GetTopAxis() const;
CChartAxis* GetRightAxis() const;
//刷新图表
void EnableRefresh(bool bEnable);
void RefreshCtrl();
//简单案例
/*
1.创建一个CUSTOM Control 对象
在对象属性中将类改为ChartCtrl,样式改为0x52010000
2.创建该对象的关联变量(必须) CChartCtrl m_ChartCtrl1;
3.在初始化区域添加初始化内容:
*/
m_ChartCtrl1.EnableRefresh(1);
auto pDateTimeAxisBottom = m_ChartCtrl1.CreateDateTimeAxis(CChartCtrl::BottomAxis);
pDateTimeAxisBottom->SetTickIncrement(false, CChartDateTimeAxis::tiHour, 1);
pDateTimeAxisBottom->SetMinMax(0,1);
auto pAxisLeft = m_ChartCtrl1.CreateStandardAxis(CChartCtrl::LeftAxis);
pAxisLeft->SetMinMax(0, 100);
//添加主标题
TChartString str1;
str = _T("曲线图");
m_ChartCtrl1.GetTitle()->AddString(str1);
//添加坐标轴标题
CChartAxisLabel* pLabel = NULL;
CChartAxis* pAxis = NULL;
str1 = _T(" ss");
pAxis = m_ChartCtrl1.GetLeftAxis();
if (pAxis)
pLabel = pAxis->GetLabel();
if (pLabel)
pLabel->SetText(str1);
m_ChartCtrl1.EnableRefresh(false);
//添加数据
double xBuff[ 100] = { 0};
double yBuff[ 100] = { 0 };
for (int i = 0; i < 10; i++) {
COleDateTime p = COleDateTime::GetCurrentTime();;
p.SetTime(p.GetHour() - i, 0, 0);
xBuff[i]=CChartCtrl::DateToValue(p);
yBuff[i]=(double)((rand() % 900) / 10;
}
m_ChartCtrl1.EnableRefresh(false);
auto pLineSerie = m_ChartCtrl1.CreateLineSerie();
pLineSerie->SetSeriesOrdering(poNoOrdering);//设置为无序
pLineSerie->SetColor(x0ff0f0f);
pLineSerie->AddPoints(xBuff, yBuff, 10);
m_ChartCtrl1.EnableRefresh(true);