在MFC中,要想用TeeChart实现对数据的实时可视化,则需要借助c++中的定时器。关于定时器的具体内容可以在鸡啄米的MFC教程中查看(感谢大神,同时鸡啄米的MFC入门教程也非常棒!我也是看他入得门):
鸡啄米MFC常用类:c++定时器


那么下面直接上东西了:

首先当然是按照上一篇文章中的方法添加TeeChart以及引入相关类,然后需要两部来实现数据显示的实时化。

一、为MFC添加定时器消息处理函数

选择项目,类向导,然后选择自己的对话框类,选择消息,找到定时器消息WM_TIMER,点击添加处理程序,
出现OnTimer后点击确定。

完成之后再对话框类中应该可以看到如下代码

void CBULABULADlg::OnTimer(UINT_PTR nIDEvent)
{// TODO:  在此添加消息处理程序代码和/或调用默认值CDialogEx::OnTimer(nIDEvent);
}

到这里就完成了Timer定时器消息处理函数的添加

二、写入实时数据显示程序

1.在界面上添加一个按钮Start,IDC_BUTTONSTART。
2.在按钮的消息处理函数中写入以下代码

void CBULABULADlg::OnBnClickedButtonstrat()
{SetTimer(1,1000,NULL);//SetTimer(定时器标识符 , 定时器间隔(ms) , 定时器回调函数)
}

3.在ontimer中写入绘图函数

void CBULABULADlg::OnTimer(UINT_PTR nIDEvent)
{// TODO:  在此添加消息处理程序代码和/或调用默认值switch (nIDEvent){case 1: //定时器1从这里开始执行,当有多个定时器时,根据不同的定时器标识可以使其执行不同的任务{CSeries my_series = m_chart.Series(0); //此处为刚刚添加的series序号my_series.Clear();                     //清除上一次的图线srand((unsigned)time(NULL));           //设置随机数种子double y;                              //y坐标for (int x = 0; x < 100; x++)          //画100个点{   //如果需要实时显示采集到的数据,那么把得到的//数据与x,y做替换y = rand() % 100;  // y = 随机数my_series.AddXY(x, y, NULL, NULL);  //添加点到图线}break;}}CDialogEx::OnTimer(nIDEvent);
}

这就是使用Timer定时器实现实时绘图的方法了。


一般这种程序多用于数据采集程序的实时可视化,因此在这里提出一点补充,即对于大数据量下的数据实时绘制方法

1.图表设置上的方法


双击teechart图表,选择Series选项卡,选择你的图线(这里是Series0),把DrawAll的钩去掉。这样Teechart就会在不改变图线形状的情况下自动减少绘制点数,从而加快绘图。

2.调用AddArray函数绘制

Teechart提供了AddArray函数以应对大数据量情况下的绘图,AddArray的函数声明如下

void AddArray(long ArraySize, VARIANT& YArray, VARIANT& XArray);

从左到右的参数分别为绘制点数,y坐标序列,x坐标序列
使用的方法为:

void CxxxDlg::TeeChartPaint(int order, double dData[]) //order为想要绘制的图线的序号, dData[]为存储了y值的数组
{                          COleSafeArray XValues;COleSafeArray YValues;int nDATALENGTH = 10000;  //绘制点数DWORD numElements[] = { nDATALENGTH };// Create a safe array    XValues.Create(VT_R8, 1, numElements);YValues.Create(VT_R8, 1, numElements);// Initialization   long i;double dval;for (i = 0; i<nDATALENGTH; i++){dval = i;XValues.PutElement(&i, &dval);dval = dData[i];YValues.PutElement(&i, &dval);//YValues.PutElement(&i, dData+i);  };CSeries lineSeries = (CSeries)m_tchart.Series(order);lineSeries.Clear();lineSeries.AddArray(nDATALENGTH, YValues, XValues);
}

VS2013 TeeChart_v5 MFC C++ 使用手册干货(二)TeeChart 实时数据图表相关推荐

  1. VS2013 TeeChart_v5 MFC C++ 使用手册干货(三)TeeChart ColorGrid类的简单使用

    前面几步安装上面两节进行 1.注册TeeChart5 2.VS添加TeeChart控件并添加变量 3.添加所需类 ColorGrid绘制示例:此方法只适用于TeeChart_v5 VS2010, 在C ...

  2. VS2013 简单MFC应用以及teechart使用方法

    目录 内容 1.teechart安装注册 2.建一个MFC应用程序 1.新建 2.对话框设计 添加teechart 添加按钮 3.添加chart类 4.添加teechart控件变量 5.添加处理代码 ...

  3. 《离线和实时大数据开发实战》(二)大数据平台架构 技术概览

    前言 接着上一章 构建大数据开发知识体系图谱,本次继续分享邦中老师的<离线和实时大数据开发实战>读书笔记 .到底什么样的平台才能算是大数据平台呢?带着这个问题,我们开始今天的内容 ( •̀ ...

  4. MFC六大核心机制之二:运行时类型识别(RTTI)

    上一节讲的是MFC六大核心机制之一:MFC程序的初始化,本节继续讲解MFC六大核心机制之二:运行时类型识别(RTTI). typeid运算子 运行时类型识别(RTTI)即是程序执行过程中知道某个对象属 ...

  5. 《MFC游戏开发》笔记二 建立工程、调整窗口

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9300383 作者:七十一雾央 新浪微博:http:// ...

  6. VS2013在MFC中使用ADO方法操作Access2013数据库

    1. 首先创建一个基于对话框的MFC应用程序ADO_ACCESS.sln.然后在stdafx.h头文件末尾添加(网上有说在某个#include后面的添加的,也有说在合适位置添加的,我这里直接添加在最末 ...

  7. VS2013用MFC操作64位access 2013

    编译环境为64win10操作系统下VS2013,access为64位Office 2013,但是安装了access 2010的数据库引擎可再发行程序包. 最近在用MFC做一个上位机可以程控仪器和模块将 ...

  8. 超全万字汇总!科研论文绘图实操干货!11类Matplotlib图表,含代码

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 导读 Matplotlib 是一个 Python 的 2D绘图库, ...

  9. 干货 | 从零进阶数据分析学习资料汇总(限时福利)

    据麦肯锡权威数据报告显示:到2025年中国数据人才缺口或将达到220万.中国商委会数据分析部的统计显示:未来中国基础性数据分析人才的缺口将达到1000万+. 如果你是想要入门数据分析的同学: 如果你还 ...

最新文章

  1. .NET程序脱离.NET Framework 运行之道
  2. 运用PFA的路灯指示牌GUI程序
  3. android ImageButton设置背景图片无法显示
  4. 诺奖经济学家:中国与世界可找到差异化空间推动合作共赢
  5. 深圳学位分数计算机,深圳10区小一初一录取分数线汇总 附积分自测入口
  6. 《Java程序设计》第四次学习总结
  7. VC++工程配置的大体流程 看图说话
  8. java语言程序设计考题_《JAVA语言程序设计》期末考试试题及答案6(应考必备题库)...
  9. iphone4 通讯录数据库文件!
  10. @RequestBody 接收数组、List 参数、@Deprecated 标记废弃方法
  11. VS2005 安装WTL
  12. python的运行机制是什么_Python 程序运行机制
  13. java导出excel包含图片
  14. SpringBoot 接口数据加解密实战
  15. cocos创建九宫格图片
  16. java-php-python-ssm“花花世界”网站计算机毕业设计
  17. 训练日志13 (8.7)
  18. 加入美人联盟,一起创造App增长新生态
  19. jsp+ssm计算机毕业设计宠物寻回系统【附源码】
  20. 测试中缺陷的管理流程

热门文章

  1. Windows无法验证此文件的数字签名
  2. 快手前AI核心人物李岩创业,已成立AI公司“元石科技”
  3. C语言基础练习004选择结构(逻辑判断语句的应用)
  4. 深圳PCT国际专利申请量全国十一连冠
  5. Say you say me
  6. 在电脑上怎么做判断题打√或x_中学信息技术教师招聘考试题
  7. .Net使用log4net
  8. unity log4net
  9. 又一次站在人生的十字路口!
  10. mui顶部nav导航栏代码