//不要与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);//