上位机MFC扩展编程图表垂直水平自定义线段创建与显示
在图表上可以显示自定义的颜色填充区域,线段等来加强数据提示功能。
前面例程实现了自定义垂直与水平的颜色填充区域创建与显示。
这个例程再来实现自定义线段的创建与显示,同样也创建水平与垂直两条。
效果如下:
上位机MFC扩展编程图表垂直水平自定义线段创建与显示
点击界面单选按钮可实现对应的功能,显示,隐藏线段与清空线段。
清空线段表示线段彻底删除,释放对应的内存空间。
隐藏表示暂时不显示线段,可调用setvisible再次显示线段。
自定义线段的创建与显示功能是通过下面函数实现:
- void CMy123View::UpdateChart()
- {
- BOOL bShowLine1 = ((CButton*)GetDlgItem(IDC_CHECK1))->GetCheck();
- BOOL bShowLine2 = ((CButton*)GetDlgItem(IDC_CHECK2))->GetCheck();
- CBCGPChartVisualObject* pChart = m_wndChart.GetChart();
- CBCGPStrokeStyle strokeStyle;
- strokeStyle.SetDashStyle(CBCGPStrokeStyle::BCGP_DASH_STYLE_DASH_DOT);
- //未创建自定义线段,则创建;
- if(NULL == m_pLineObject1)
- m_pLineObject1 = pChart->AddChartLineObject(4.5, TRUE /* Horizontal */, CBCGPBrush(CBCGPColor::DarkRed), 2, &strokeStyle);
- if(NULL == m_pLineObject2)
- m_pLineObject2 = pChart->AddChartLineObject(6, FALSE /* Vertical */, CBCGPBrush(CBCGPColor::DeepSkyBlue), 2, &strokeStyle);
- //根据设置显示隐藏线段;
- m_pLineObject1->SetVisible(bShowLine1);
- m_pLineObject2->SetVisible(bShowLine2);
- pChart->SetDirty(true,true);//图表刷新重绘,显示线段;
- }
复制代码 线段1,线段2显示操作单选框点击函数调用上面的代码可实现线段的显示与隐藏。
线段的清空可以通过图表类成员函数RemoveAllChartObjects全部清空,
也可以针对指定线段删除,删除时要注意线段指针的重新赋值。如例程,将线段指针重新赋值为空,m_pLineObject1 = m_pLineObject2 = NULL;
清空函数如下:
- void CMy123View::OnBnClickedCheck3()
- {
- ((CButton*)GetDlgItem(IDC_CHECK1))->SetCheck(0);
- ((CButton*)GetDlgItem(IDC_CHECK2))->SetCheck(0);
- ((CButton*)GetDlgItem(IDC_CHECK3))->SetCheck(0);
- //
- m_wndChart.GetChart()->RemoveAllChartObjects();
- //m_wndChart.GetChart()->RemoveChartObject(m_pLineObject1);//清除指定图表对象;
- m_pLineObject1 = m_pLineObject2 = NULL;
- m_wndChart.GetChart()->Redraw();
- }
复制代码 图表自定义线段的处理变量定义为CBCGPChartLineObject* m_pLineObject1;
CBCGPChartLineObject类可以查询手册,查看其他成员函数介绍。
例程用到的扩展类库,可以搜索BCGP下载使用。
例程下载地址:
如果您认可,可联系功能定制! 如果您着急,充值会员可直接联系发您资料!
|