//不要与x轴垂直的表格线
m_Chart.GetPlot().GetAxis(0,var).GetAxisGrid().GetMajorPen().SetStyle(0);// no x grids
//隐藏第二y轴,即右边的y轴
m_Chart.GetPlot().GetAxis(2,var).GetAxisScale().SetHide(TRUE);
//刷新控件
}
函数二:启动计时器
void RealChartDlg::OnStart()
{
// TODO: Add your control notification handler code here
m_nTimer = SetTimer(100, 100, NULL);//1/10 second
ASSERT(m_nTimer != 0);
GetDlgItem(IDC_START)->EnableWindow(FALSE);//禁用start按钮
}
函数三:产生数据,插入数据点,或删除下标最小的数据点
void RealChartDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
int nYValue = rand()%100;
nCount++;
CString str;
int i;
i = nCount;
str.Format("%d", i);
int inPos = m_Chart.GetRowCount() + 1;
m_Chart.GetDataGrid().InsertRows(inPos, 1);
m_Chart.SetRow(inPos);
m_Chart.SetRowLabel(str);//sLabel为CString型
m_Chart.GetDataGrid().SetData(inPos, 1, nYValue, 0);
if (nCount > 30)
{
m_Chart.GetDataGrid().DeleteRows(inPos - 30, 1);
}
m_Chart.Refresh();
//每产生30个数据便停止计时并启用start按钮,再点击一下即可以继续产生下30个数据
if (nCount % 30 == 0)
{
KillTimer(m_nTimer);
GetDlgItem(IDC_START)->EnableWindow(TRUE);//