创建XTP图表的方法

首先声明:

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);
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值