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(20, 20, rcClient.Width()-20, rcClient.Height()-20), this, 1050 )) 
    { 
        if (!m_chart.GetSafeHwnd()) 
        { 
            AfxMessageBox(_T("不能创建图表控件!")); 
            return FALSE; 
        } 
 
        m_chart.Reset(); 
        m_chart.SetAutoScale(FALSE); 
    } 
 
    m_chart.SetTitle(_T("一个测试图,显示一些虚拟数据")); 
    m_chart.SetBKColor(RGB(255, 255, 240)); 
    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;

时间: 2024-10-25 14:12:51

CBarChart柱形图类的相关文章

PHP图形生成库JpGraph生成图形的例子

pGraph这个强大的绘图组件能根据用户的需要绘制任意图形.只需要提供数据,就能自动调用绘图函数的过 程,把处理的数据输入自动绘制.JpGraph提供了多种方法创建各种统计图,包括折线图.柱形图和饼形图等.JpGraph是一个完全使用PHP语言编 写的类库,并可以应用在任何PHP环境中. 简介 JpGraph其实就是一个图表类库,会让开发者们作图非常方便,只要几行代码就可以勾画出非常炫的图表.   JpGraph是开源的PHP统计图表生成库,基于PHP的GD2图形库构建,把生成统计图的相关操作封

用代码画折线图/柱形图/条形图/饼图

饼图|折线图|柱形图 本文将介绍在.Net中如何使用代码画图表,就像用MS Excel生成的图表一样.也可以画像DataGrid一样的表格. 在.Net中,微软给我们提供了画图类(System.Drawing.Imaging),在该类中画图的基本功能都有.比如:直线.折线.矩形.多边形.椭圆形.扇形.曲线等等,因此一般的图形都可以直接通过代码画出来.接下来介绍一些画图函数:Bitmap bMap=new Bitmap(500,500) //定义图像大小:bMap.Save(Stream,Imag

android自定义柱形图,面试要用,急!

问题描述 android自定义柱形图,面试要用,急! 求指导,这样的自定义view怎么做?急,面试要用,请大神指导! 这个搞定了,但是股票类的这种图,我感觉用第三方的都很难做啊,怎么搞? 解决方案 canvas 画一个矩形的方法, 解决方案二: https://github.com/lecho/hellocharts-android 解决方案三: 就是在view的canvas上绘制,如果基本的东西不会,就放弃吧,老实点

Android绘图机制(四)——使用HelloCharts开源框架搭建一系列炫酷图表,柱形图,折线图,饼状图和动画特效,抽丝剥茧带你认识图表之美

Android绘图机制(四)--使用HelloCharts开源框架搭建一系列炫酷图表,柱形图,折线图,饼状图和动画特效,抽丝剥茧带你认识图表之美 这里为什么不继续把自定义View写下去呢,因为最近项目很急,个人能力也有限,所以就在网上找到一些开源的框架使用,不是MPAndroidChart,也不是AChartEngine ,而是HelloCharts 开源地 址:https://github.com/lecho/hellocharts-android 这次主要是翻译了一些注释和简化了一下项目的结

java实现柱形图、饼图的例子

在前面一篇博文中我们已经制作了折线图,接下来我们来制作柱形图和饼图. 柱形图的绘制流程与折线图比较类似,下面将只贴出代码,不作详细说明. 饼图相对较容易,只需计算每个数据占总比的大小旋转绘制扇形图即可,参见下述代码. 开始 柱形图 由于练手时是重写的,相对上篇博文功能可能较少,请结合上篇博文参考: package hk.jerry.barchart; import java.util.List; import android.annotation.SuppressLint; import and

那些意境情怀俱佳的咖啡类网页设计

  音乐可以穿越时光,而美食可以跨越国界,它们和好设计一样,都无需语言来赘述.在过去的几年中,那些设计优秀的餐馆.酒吧类网站开始抓住更多设计师的眼睛和吃货的胃,成了"唯有爱与美食不可辜负"的真实注脚. 新鲜精致的美食与优雅的环境无缝融合,搭配的字体和色彩让你的饥饿感止不住地翻涌起来,你的胃口和情绪会被这些精心设计的网站完全调动起来.优设曾经发过设计优异的美食和美酒类的网站,今天我们来看看这类网站的另外一个重要分支:咖啡类网页设计. 在美国,平均每个人每年会喝500~700杯咖啡,在中国

Delphi中TApplication类的用法

在Delphi中TApplication是一个有着十分重要作用的类.TApplication类是用于描述Delphi编制的应用程序的一个类.通过对这个类的灵活应用可以编制许多有特点的程序.. 1) 检测当前Windows程序是否被激活: TApplication类有一个属性--Active,这个属性就可以描述当前运行的程序是否被激活,成为Windows的焦点.检 测的代码如下: If Application.Active=False then ShowMessage('当前窗口没有被激活');

PHP 验证登陆类分享

 本文给大家介绍的是用php实现的用户登录与验证的一段代码,没有把登录和数据库查询分开,有需要的朋友,可以参考学习下     简单的登录类,没有把登录和数据库查询分开   代码如下: /* * 例子 * * $Auth=new Auth(); * $Auth->login("123@123.com","123"); * $Auth->logout(); * echo $r->init(); * **/   验证登陆类   代码如下: <?ph

php中关于抽象(abstract)类和抽象方法的问题分析

 这篇文章主要介绍了php中关于抽象(abstract)类和抽象方法的问题分析,有需要的朋友可以参考一下 在面向对象(OOP)语言中,一个类可以有一个或多个子类,而每个类都有至少一个公有方法作为外部代码访问的接口.而抽象方法就是为了方便继承而引入的,现在来看一下抽象类和抽象方法分别是如何定义以及他们的特点.   什么是抽象方法?我们在类里面定义的只有方法名没有方法体的方法就是抽象方法,所谓没有方法体就是在方法声明的时候没有大括号以及其中的内容,而是直接声明时在方法名后加上分号结束,另外在声明抽象