首先声明:
CXTPChartControl m_chartControl;
然后创建:
m_chartControl.Create(WS_CHILD | WS_VISIBLE, CRect(0, 0, 0, 0), this, IDR_TEST_CONTROL);
再创建一个chartContent对象:
CXTPChartContent *pContent = new CXTPChartContent;
m_chartContent.SetContent(pContent);
再添加曲线:
CXTPChartSeriesCollection* pCollection = pContent->GetSeries();
pCollection.RemoveAll();
if(pCollection)
{
for(int s=0;s<2;s++)//此处是加入两条曲线
{
CXTPChartSeries* pSeries = pCollection->Add(new CXTPChartSeries());
if(pSeries)
{
pSeries->GetPoints()->Add(new CXTPChartSeriesPoint(1, 2));
// 加入多个点
// …………
}
}
}
设置表格:
CXTPChartDiagram2D* pDiagram = DYNAMIC_DOWNCAST(CXTPChartDiagram2D, pCollection->GetAt(0)->GetDiagram()); ASSERT (pDiagram); pDiagram->SetAllowZoom(TRUE); pDiagram->GetAxisY()->GetRange()->SetMaxValue(100.1); pDiagram->GetAxisY()->GetRange()->SetAutoRange(FALSE); pDiagram->GetAxisY()->SetAllowZoom(FALSE); pDiagram->GetAxisX()->GetRange()->SetMaxValue(100.1); pDiagram->GetAxisX()->GetRange()->SetAutoRange(FALSE); pDiagram->GetAxisX()->GetRange()->SetZoomLimit(10); pDiagram->GetAxisX()->SetInterlaced(FALSE); pDiagram->GetAxisY()->SetInterlaced(FALSE); pDiagram->GetPane()->GetFillStyle()->SetFillMode(xtpChartFillSolid);最后更新一下控件:
m_chartControl.UpdateWindow(TRUE);
除了上述步骤外,为了动态控制控件的大小,,可以添加WM_ON_SIZE()消息映射,在OnSize()函数中加入以下代码:
CView::OnSize(nType, cx, cy); CXTPWindowRect rcChart(this); ScreenToClient(&rcChart); if (m_chartControl.GetSafeHwnd()) { m_chartControl.SetWindowPos(NULL, rcChart.left, rcChart.top, rcChart.Width(), rcChart.Height(), SWP_NOZORDER); }
每当我看天的时候我就不喜欢再说话,每当我说话的时候我却敢看天。