zoukankan      html  css  js  c++  java
  • CBarChart柱形图类

    在用VC做有关图表的时候,感觉不是那么方便,在codeproject找到一个柱形图的实用类,原文地址为:http://www.codeproject.com/KB/miscctrl/CBarChart.aspx。它可以很快速的生成柱状图,并且支持输出位图、支持打印、支持从数据库导入。

    原文章的类为多字节的,我自己改为了可适应多字节和Unicode版本的,如果有错的话,还请使用原文章所给出的源码。下面介绍下基本步骤:
    1.添加BarChart.cpp  BarChart.h工程;
    2.在需要使用的地方添加头文件

    #include "BarChart.h" 

    3.定义一个CBarChart的变量;
    4.在实现文件里面使用Create方法创建图表柱形图;

    例如以下代码可以在对话框的初始化函数里面添加:

    BOOL CBar_TestDlg::OnInitDialog() 

        CDialog::OnInitDialog(); 
     
            //````````````````````` 
     
        // TODO: 在此添加额外的初始化代码 
        CRect rcClient; 
        GetClientRect(&rcClient); 
     
        if (!m_chart.Create(CRect(2020, rcClient.Width()-20, rcClient.Height()-20), this1050 )) 
        { 
            if (!m_chart.GetSafeHwnd()) 
            { 
                AfxMessageBox(_T("不能创建图表控件!")); 
                return FALSE; 
            } 
     
            m_chart.Reset(); 
            m_chart.SetAutoScale(FALSE); 
        } 
     
        m_chart.SetTitle(_T("一个测试图,显示一些虚拟数据")); 
        m_chart.SetBKColor(RGB(255255240)); 
        m_chart.ShowTooltip(TRUE); 
     
        m_chart.AddBar(1600.356,_T("一月"),RGB(255,255,0)); 
        m_chart.AddBar(2841.5468,_T("二月"), RGB(255,0,0)); 
        m_chart.AddBar(1045.3258,_T("三月"), RGB(100,100,200)); 
        m_chart.AddBar(1502.215,_T("四月"), RGB(0,255,0)); 
        m_chart.AddBar(1467,_T("五月"), RGB(255,255,255)); 
        m_chart.AddBar(1678.354,_T("六月"), RGB(200,255,255)); 
        m_chart.AddBar(1785.689,_T("七月"), RGB(255,240,40)); 
        m_chart.AddBar(1283.099,_T("八月"), RGB(255,60,130)); 
        m_chart.AddBar(1554.879,_T("九月"), RGB(255,255,200)); 
        m_chart.AddBar(1400.10,_T("十月"), RGB(130,235,250)); 
        m_chart.AddBar(1600.556,_T("十一月"),RGB(100,150,200)); 
        m_chart.AddBar(1900.3546,_T("十二月"), RGB(150,240,80), TRUE); 
     
        return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE 
    } 

    效果如下所示:

    对于的一些控制函数,参看原文或者源代码。下载地址:http://download.csdn.net/source/2532159

     2012年4月18日 多字节下乱码问题
    修改如下:
    void CBarChart::CChartBar::CreateLabelFont()里面m_lf.lfCharSet = ARABIC_CHARSET;改为m_lf.lfCharSet = GB2312_CHARSET;
    BOOL CChartTip::Create(CWnd *pParentWnd, BOOL *pbEnable, CString* lpszTitle, int nDelay)里面lf.lfCharSet = ARABIC_CHARSET;改为lf.lfCharSet = GB2312_CHARSET;

  • 相关阅读:
    js 正则表达式
    JAVA jdk环境搭建
    VMWareStation10 密钥
    linux xshell jdk hadoop(环境搭建) 虚拟机 安装(大数据搭建环境)
    linux hadoop jdk虚拟机下配置
    Linux shell基础(四)
    Linux shell基础(二)
    Linux shell基础(三)
    Linux shell基础(一)
    html
  • 原文地址:https://www.cnblogs.com/lidabo/p/3489652.html
Copyright © 2011-2022 走看看