QQ登录

只需一步,快速开始

MFC扩展编程实例气泡图表大小形状标签设置

[ 复制链接 ]
MFC扩展编程实例气泡图表大小形状标签设置

当前例程实现气泡图表的创建,设置气泡的大小,形状,标签的显示角度等功能。
效果如下图:

MFC扩展编程实例气泡图表大小形状标签设置

MFC扩展编程实例气泡图表大小形状标签设置

气泡图表的创建很简单,主要是要设置其数据标签的属性来更改外观。
例程创建了一气泡图表,点击界面的按钮,可以同时设置气泡的大小,形状,与标签属性。

下面是例程实现过程介绍。
先创建基于MFC扩展库的单文档工程class CMy123View : public CBCGPFormView。
在默认的对话框资源添加一图片控件,ID修改为IDC_CHART用于显示图表 。

然后在视窗类中添加变量        CBCGPChartCtrl m_wndChart;
以及虚函数Create,用于初始化图表。
  1. BOOL CMy123View::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext)
  2. {
  3.         BOOL bRst = CBCGPFormView::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);;
  4.         //图表初始化;
  5.         m_wndChart.SubclassDlgItem(IDC_CHART,this);       
  6.         CBCGPInfoTipOptions infoTipOptions;
  7.         infoTipOptions.m_StemLocation = CBCGPPopupWindow::BCGPPopupWindowStemLocation_Left;
  8.         m_wndChart.EnableInfoTip(TRUE, &infoTipOptions);//显示提示文本;
  9.         CBCGPChartVisualObject* pChart = m_wndChart.GetChart();//获取图表指针;
  10.         pChart->SetChartType(BCGPChartBubble);//
  11.         pChart->SetChartTitle(_T("气泡图表"));//设置图表标题;
  12.         pChart->SetSeriesShadow(true);//数据系列显示阴影;
  13.         pChart->ShowDataLabels(true, TRUE, FALSE, 45);//45Y度显示数据标签;
  14.         //创建数据系列,添加数据;
  15.         pChart->AddChartDataYXY1(_T("工控编程吧"), 3, 2, 6700);
  16.         pChart->AddChartDataYXY1(_T("头条"), 4, 3, 5500);
  17.         pChart->AddChartDataYXY1(_T("百度"), 5, 4, 3200);
  18.         pChart->AddChartDataYXY1(_T("微信"), 6, 5, 2500);
  19.         pChart->AddChartDataYXY1(_T("微博"), 5, 6, 1400);
  20.         pChart->AddChartDataYXY1(_T("阿里"), 4, 7, 1350);
  21.         pChart->AddChartDataYXY1(_T("其他"), 8, 7.5, 1700);
  22.         //数据系列属性设置;
  23.         CBCGPChartBubbleSeries* pBubbleSeries = DYNAMIC_DOWNCAST(CBCGPChartBubbleSeries, pChart->GetSeries(0));
  24.         if (pBubbleSeries != NULL)
  25.         {
  26.                 ASSERT_VALID(pBubbleSeries);
  27.                 pBubbleSeries->SetDataLabelContent(BCGPChartDataLabelOptions::LC_BUBBLE_SIZE);
  28.                 pBubbleSeries->SetMarkerShape(BCGPChartMarkerOptions::MS_CIRCLE);//数据标志点形状;
  29.                 pBubbleSeries->SetBubbleScale(100);//气泡大小;
  30.                 pBubbleSeries->SetDefaultFillGradientType( CBCGPBrush::BCGP_GRADIENT_RADIAL_TOP_LEFT);//渐变样式;
  31.                 pBubbleSeries->EnableAutoColorDataPoints();
  32.                 pBubbleSeries->m_bIncludeDataPointLabelsToLegend = TRUE;

  33.                 for (int i = 0; i < pBubbleSeries->GetDataPointCount(); i++)
  34.                 {
  35.                         BCGPSeriesColorsPtr colors;
  36.                         const BCGPChartFormatSeries* pFormatSeries = pBubbleSeries->GetColors(colors, i);
  37.                         if (pFormatSeries != NULL)
  38.                         {//设置气泡带渐变填充颜色;
  39.                                 BCGPChartFormatSeries* pFormat = (BCGPChartFormatSeries*)pBubbleSeries->GetDataPointFormat(i, TRUE);
  40.                                 pFormat->m_seriesElementFormat.m_brFillColor =
  41.                                         CBCGPBrush(colors.m_pBrElementFillColor->GetColor(), CBCGPColor::White, CBCGPBrush::BCGP_GRADIENT_RADIAL_TOP_LEFT);
  42.                         }
  43.                 }
  44.         }
  45.         //添加添加到布局管理器统一管理布局;
  46.         if (GetLayout() == NULL)
  47.                 return bRst;
  48.         CBCGPStaticLayout* pLayout = (CBCGPStaticLayout*)GetLayout();
  49.         if (pLayout == NULL)
  50.                 return bRst;
  51.         pLayout->AddAnchor(m_wndChart.GetDlgCtrlID(), CBCGPStaticLayout::e_MoveTypeNone, CBCGPStaticLayout::e_SizeTypeBoth);
  52.         //
  53.         return bRst;
  54. }
复制代码
图表创建好后,就可以以默认设置的外观显示。
当然也可以添加一个按钮来设置图表的外观。
  1. void CMy123View::OnBnClickedButton1()
  2. {
  3.         static int nMarkerShape=0;
  4.         static int nScale=1;
  5.         static int nDataLabelAngle=0;
  6.         CBCGPChartVisualObject* pChart = m_wndChart.GetChart();
  7.         ASSERT_VALID(pChart);
  8.         pChart->ShowDataLabels(TRUE, TRUE, FALSE, nDataLabelAngle*45);
  9.         CBCGPChartBubbleSeries* pSeries = DYNAMIC_DOWNCAST(CBCGPChartBubbleSeries, pChart->GetSeries(0));
  10.         if (pSeries != NULL)
  11.         {
  12.                 ASSERT_VALID(pSeries);
  13.                 pSeries->ClearDataPointFormat();
  14.                 pSeries->SetMarkerShape((BCGPChartMarkerOptions::MarkerShape)nMarkerShape);
  15.                 pSeries->SetBubbleScale(nScale*30);
  16.         }
  17.         pChart->Redraw();
  18.         //
  19.         nMarkerShape++;
  20.         nMarkerShape=nMarkerShape>3?0:nMarkerShape;
  21.         nScale++;
  22.         nScale = nScale>10?0:nScale;
  23.         nDataLabelAngle++;
  24.         nDataLabelAngle = nDataLabelAngle>8?0:nDataLabelAngle;
  25. }
复制代码
例程使用到的MFC扩展库可以在网站搜索下载。
例程源代码下载地址:
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:42.MFC扩展编程实例气泡图表大小形状标签设置.rar 
文件大小:80.52 KB  售价:3金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我


  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  

  

上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例

  

经历1年的编程与录制点击进入查看



回复

使用道具 举报

快速回复 返回列表 客服中心 搜索