VC环境中调用TeeChart控件实现数据曲线分析
简介:介绍TeeChartPro是一款提供上百种2D和3D图形风格、40种数学和统计功能、加上无限制的轴和22
种调色板组件供选择。提供上百种2D和3D图形风格、40种数学和统计功能、加上无限制的轴和22种调色
板组件供您选择。提供上百...
关键字:
介绍
TeeChartPro是一款提供上百种2D和3D图形风格、40种数学和统计功能、加上无限制的轴和22种调色板组件供选择。提供上百种2D和3D图形风格、40种数学和统计功能、加上无限制的轴和22种调色板组件供您选择。提供上百种2D和3D图形风格、40种数学和统计功能、加上无限制的轴和22种调色板组件供选择,TeeChart还包括一个强大的、完整的编辑对话框,
几乎可用于每个组件和子组件,允许你快速的设计复杂图表应用程序。图表编辑器通过TeeCommander组件进一步得到增强,它提供一次点击访问图表编辑器和共同特征。
正文
由于前段时间在实现一个项目中需要进行很多的历史信息的统计,尤其在曲线分析的功能设
计的时候,客户对这块的功能要求多,需要能够对历史记录的点的信息进行多时段的查询.(历 |
然后打开曲线配置属性,在Series属性页加入两条fastline曲线(见下图)
| |
定位到Tools 属性页,加入一些相关的Tools(见下图) | |
准备工作完成了,我们现在开始编写加入程序数据方法编程了,这里采用加入随机数的方法(0-300的随机数)
这里在初始化曲线的时候就采用控件的AddXY接口加入了1440个点的随机数,这里采用的条 |
m_ctrlChart.Series(1).Clear();
m_ctrlChart.GetPage().SetMaxPointsPerPage(1440);
COleDateTimeCurTime = COleDateTime::GetCurrentTime();
COleDateTimetempTime ;
tempTime= CurTime;
CurTime.SetTime(0,0,0);
CurTime.SetDate(tempTime.GetYear(),tempTime.GetMonth(),tempTime.GetDay());COleDateTimeSpan tmSpan = COleDateTimeSpan(0,0,1,0);
CStringcsTime ;
for(inti=0; i<1440; i++)
{
csTime = CurTime.Format("%H:%M"); float fzVal = float(GetRandom(12000,28000)/100); m_ctrlChart.Series(0).AddXY(i,fzVal,csTime,i); | |
fzVal= float(GetRandom(15000,25000)/100);
m_ctrlChart.Series(1).AddXY(i,fzVal,csTime,i);
CurTime+= tmSpan;
}
m_ctrlChart.GetAxis().GetLeft().SetMinMax(100,300);
}
至此,编译运行就可以看到我们的曲线了.但是曲线在运行的时候我们虽然能够看到曲线的信息,但是如果我们鼠标在曲线上面移动的时候不能动态显示鼠标当前位置的数据值,由于我们在Tools中加入了Annotation工具,在这里我们OnMouseMoveTchartPlan消息来实现鼠标移动的时候数据变化的显示.
我们在H中加入定义:
voidOnMouseMoveTchartPlan(long Shift, long X, long Y);
DECLARE_EVENTSINK_MAP()
在实现中加入:
BEGIN_EVENTSINK_MAP(CTestTeeChartDlg,CDialog)
ON_EVENT(CTestTeeChartDlg,IDC_TCHART1, 20, OnMouseMoveTchartPlan, VTS_I
4 VTS_I4 VTS_I4) | |
END_EVENTSINK_MAP() 实现体: | |
{ |
if(nP< 0)
{
return;
}
CValueListxList = m_ctrlChart.Series(0).GetXValues();
CValueListyList = m_ctrlChart.Series(0).GetYValues();
CValueListyPlanList = m_ctrlChart.Series(1).GetYValues();
CStringcsLabel = m_ctrlChart.Series(0).GetPointLabel(nP);
doublexV = xList.GetValue(nP);
doublexFacY = yList.GetValue(nP);
doublexPlanY = yPlanList.GetValue(nP);
CToolListtlist = m_ctrlChart.GetTools();
CTools tools = tlist.GetItems(1); | 功率(Q): %4.2f kW",csLabel, xFacY, |
xPlanY);
ant.SetText(stmep);
}
程序的运行功能见下:
一:
|
三: | |