在用VC做有关图表的时候,感觉不是那么方便,在codeproject找到一个柱形图的实用类,原文地址为:http://www.codeproject.com/KB/miscctrl/CBarChart.aspx。它可以很快速的生成柱状图,并且支持输出位图、支持打印、支持从数据库导入。
原文章的类为多字节的,我自己改为了可适应多字节和Unicode版本的,如果有错的话,还请使用原文章所给出的源码。下面介绍下基本步骤:
1.添加BarChart.cpp 和 BarChart.h工程;
2.在需要使用的地方添加头文件
3.定义一个CBarChart的变量;
4.在实现文件里面使用Create方法创建图表柱形图;
例如以下代码可以在对话框的初始化函数里面添加:
{
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;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2012-12-24 在VC中定制Doxygen注释宏
2012-12-24 Doxygen + Graphviz + Htmlhelp, 成为文档好手
2012-12-24 C++开发常用工具“群英会”