工控编程吧
标题:
MFC扩展编程实例2D极差条形图创建与设置渐变样式
[打印本页]
作者:
qq263946146
时间:
2020-1-17 13:00
标题:
MFC扩展编程实例2D极差条形图创建与设置渐变样式
MFC扩展编程实例2D极差条形图创建与设置渐变样式
这个实例实现二维极差条形图创建与设置渐变样式功能。
效果如下图。
(, 下载次数: 3)
上传
点击文件名下载附件
例程创建有两个数据系列,以极差形式显示。
界面上有两按钮可以设置图表数据标签显示位置与数据系列的填充渐变样式。
不同图表创建时,对应使用的函数为SetChartType,所以这是一个关键函数。
具体使用可以参考视窗类虚函数Create内的调用。
下面是例程创建过程与关键代码。
先创建基于class CMy123View : public CBCGPFormView单文档工程。
在视窗对话框资源中添加图片控件,修改ID为IDC_CHART用于显示图表。
添加视窗类成员变量与虚函数Create。
CBCGPChartCtrl m_wndChart;
BOOL CMy123View::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext)
{
BOOL bRst = CBCGPFormView::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);;
//获取图表指针;
m_wndChart.SubclassDlgItem(IDC_CHART,this);//子类化图表;
CBCGPChartVisualObject* pChart = m_wndChart.GetChart();
BCGPChartCategory category = BCGPChartBar;//图表种类,F12查看全部;
BCGPChartType type = BCGP_CT_RANGE;//图表类型,按F12查看全部;
pChart->SetChartType(category, type);//设置图表类别;
pChart->SetChartTitle(_T("2D极差条形图"));
CBCGPChartBarSeries* pBarSeries1 = DYNAMIC_DOWNCAST(CBCGPChartBarSeries, pChart->CreateSeries(_T("能源")));
CBCGPChartBarSeries* pBarSeries2 = DYNAMIC_DOWNCAST(CBCGPChartBarSeries, pChart->CreateSeries(_T("税收")));
pBarSeries1->SetCustomOffsetPercent(100);
pBarSeries2->SetCustomOffsetPercent(100);
pBarSeries1->SetCustomSizePercent(50);
pBarSeries2->SetCustomSizePercent(50);
pChart->AddChartDataYXY1(0, 1, 2, 0);
pChart->AddChartDataYXY1(2, 3, 2, 0);
pChart->AddChartDataYXY1(6, 8, 2, 0);
pChart->AddChartDataYXY1(8, 7, 2, 0);
pChart->AddChartDataYXY1(8, 1, 2, 0);
pChart->AddChartDataYXY1(8, 4, 6, 0);
pChart->AddChartDataYXY1(14, 1, 3, 0);
pChart->AddChartDataYXY1(15, 8, 1, 0);
pChart->AddChartDataYXY1(6, 4, 2, 1);
pChart->AddChartDataYXY1(7, 2, 1, 1);
pChart->AddChartDataYXY1(11, 3, 2, 1);
pChart->AddChartDataYXY1(13, 7, 2, 1);
pChart->AddChartDataYXY1(12, 1, 2, 1);
pChart->AddChartDataYXY1(14, 5, 4, 1);
pChart->AddChartDataYXY1(17, 1, 3, 1);
pChart->AddChartDataYXY1(10, 8, 1, 1);
//添加添加到布局管理器统一管理布局;
if (GetLayout() == NULL)
return bRst;
CBCGPStaticLayout* pLayout = (CBCGPStaticLayout*)GetLayout();
if (pLayout == NULL)
return bRst;
pLayout->AddAnchor(m_wndChart.GetDlgCtrlID(), CBCGPStaticLayout::e_MoveTypeNone, CBCGPStaticLayout::e_SizeTypeBoth);
//
return bRst;
}
复制代码
在虚函数中实现了图表的创建,基于关键代码如下。
BCGPChartCategory category = BCGPChartBar;//图表种类,F12查看全部;
BCGPChartType type = BCGP_CT_RANGE;//图表类型,按F12查看全部;
pChart->SetChartType(category, type);//设置图表类别;
类型BCGP_CT_RANGE就为极差类型。
剩下两个设置按钮的代码可以下载例程查看。
例程用到的MFC扩展库源代码,可以网站内搜索下载。
例程源代码下载:
(, 下载次数: 0)
上传
点击文件名下载附件
[weixinlianxi]1[/weixinlianxi]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4