MFC下好用的高速绘图控件-(Hight-Speed Charting)

Hight-Speed Charting是开源免费

先到codeproject下载源码包ChartCtrl_source.zip百度云盘

下载完成后解压到工程目录下ChartCtrl

1、导入工程到工程添加文件夹chartctrl

2、在基本对话框加入Custom Control 

这个style为什么设置0x52010000我就不知道啦


3、加入头文件,这里只用简单的功能

#include "ChartCtrl/ChartCtrl.h"
#include "ChartCtrl/ChartLineSerie.h"
#include "ChartCtrl/ChartTitle.h"

4、给按钮添加响应函数,我这里是以时间为单位

void GRAPH::OnBnClickedButtonOk()
{

	m_Chart.RemoveAllSeries(); //先清空 
	CChartAxis * pAxis = NULL;  
	CChartDateTimeAxis * pDateAxis = NULL; 
	pDateAxis = NULL;  
	pDateAxis = m_Chart.CreateDateTimeAxis(CChartCtrl::BottomAxis); 
	pDateAxis -> SetAutomatic( true ); 
	pDateAxis -> SetTickLabelFormat( false ,_T( "%m月%d日" )); 
	pAxis = m_Chart.CreateStandardAxis(CChartCtrl:: LeftAxis); 
	pAxis -> SetAutomatic( true );
	double x[ 1000 ], y[ 1000 ]; 
	COleDateTimeSpan cn=m_graphend-m_graphstart;
	CString k=m_graphend.Format("%Y-%m-%d");
	LONG s=cn.GetDays();
	COleDateTime t1(m_graphstart); 
	COleDateTimeSpan tsp( 1 , 0 , 0 , 0 ); 
	int listcount = m_list.GetItemCount();
	for(int i=0; i <listcount; i++) 
	{
		if(m_list.GetCheck(i)==TRUE)
		{
			CString num=m_list.GetItemText(i,0);
			if (TRUE==m_radiod.GetCheck())
			{

				CString ch;
				int count=m_list.GetItemCount();
				for(int p=0;p<count;p++)
				{
					if(m_list.GetCheck(p)==TRUE)
					{
						ch=m_list.GetItemText(p,0);
						CString date;
						for (int i=0;i<s;i++)
						{
							date=t1.Format("%Y-%m-%d");
							x[i] = t1.m_dt; 
							y[i] = get(num,date);//查询数据库获得数据
							//y[i] = tan( float (i)); 
							t1 += tsp; 
						}
					}
				}
				CChartLineSerie * pLineSerie2; 
				m_Chart.RemoveAllSeries(); //先清空 
				pLineSerie2 = m_Chart.CreateLineSerie(); 
				pLineSerie2 -> SetSeriesOrdering(poXOrdering); //设置为无序 
				pLineSerie2 -> AddPoints(x, y, s ); 
				pLineSerie2 -> SetName(_T( "这是IDC_ChartCtrl2的第一条线" ));
			}
		}
	}
}


5、效果温湿度曲线折线图

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值