MFC学习笔记(一)High Speed Chart 控件使用

本文介绍了在MFC中使用High Speed Chart控件进行折线图实时显示的过程,包括坐标轴设置、图示信息、线系管理和实时更新功能的实现。同时,文章总结了在使用过程中遇到的对话框弹出延迟和内存访问冲突问题及其解决方案,强调了代码注释和资源管理的重要性。
摘要由CSDN通过智能技术生成

引言

大学期间学习STM32时,由于参加机器人比赛,第一次接触到摄像头,让我深深被其吸引,还记得当初为了点亮第一颗摄像头,第一次通过自己写的颜色识别算法让它按照自己的意愿去识别出每帧图像的内容,正确标识出物体位置信息时的激动,那时的我们真的是废寝忘食般的吸收大量新知识,连续通宵好几晚,最终,付出的辛苦使我们收获颇丰。刚大学毕业时,我是在一家医疗器械公司担任硬件工程师,但是出于对摄像头及与其相关的图像识别算法的热爱,我毅然决然的辞掉了硬件工程师的工作,重新应聘了一家做摄像头的公司。在其中任职软件研发人员,终于让我得以慢慢掀开摄像头的神秘的面纱。初来公司就遇到了一个比较大的挑战,由于公司项目的需要,原先写的一种测试软件已经较为古老,不太适用于Windows 10以上的版本,而且随着windows系统的不断更新,老软件经常出现卡死的现象。因此,公司决定开发一个新的软件,用于替换原先的旧软件。其实也不能叫重新开发软件,因为公司自己开发了一个比较成熟的测试软件,是用MFC写的,而我们软件工程师主要做的也就是在主框架中开发新的DLL,部门老大出于锻炼新人的想法,最后将开发测试DLL的任务就交给我这个新人了。
对于我这个新人来说,这还是相当困难的,因为我之前从来没接触过MFC,就连C++也是学得很肤浅的,虽然有旧软件的源码,可以参考着来进行修改,但是当我具体去看源码的时候才感觉到没有注释是多么的痛苦,定义的一大堆不明其意的函数及各种类,都没有注释,看得我是一个头两个大。(所以在这里,我衷心希望我们所有的软件攻城狮们都能有良好的代码注释习惯,这样不仅能提醒自己,也能帮助后来者,让他们也能很好地看懂代码。)看了两天,我放弃了,感觉读懂那个源码所需要花的时间太长了,还不如自己重新一个,可是自己写也很头痛啊,这个DLL关键的是要有折线图实时显示,而MFC中又没有专门的绘图插件,原先那个软件是自己绘制的图形,对我这个新人而言肯定没办法做到的,最后总算在CSDN中找到了合适的绘图控件:High Speed Chart和TeeChart。感谢尘中远大神写的High Speed Chart得用法介绍,帮助很大。原文出处:MFC下好用的高速绘图控件-(Hight-Speed Charting)

High Speed Chart的安装教程网上有很多,尘中远大神的教程已经很详细了,我就不再重复说明了,这里我主要介绍我在使用这个控件时遇到的问题,及解决的办法。下图是效果图:

测试图片显示

一、High Speed Chart 控件使用步骤

使用前先声明几个指针对象

CChartCtrl m_ChartCtrl;
CChartLineSerie *pLineSerie1;
CChartLineSerie *pLineSerie2;
CChartAxis *pAxis1; 
CChartAxisLabel* pLabel;

这几个指针是使用控件所必需要的,下面介绍步骤

1、建立坐标轴线系

使用到的函数主要有以下几个:
CreateStandardAxis(CChartCtrl::LeftAxis); SetAutomatic(false); SetMinMax(-20,450); CreateStandardAxis(CChartCtrl::BottomAxis); SetAutomatic(false); SetMinMax(-50,1100);
其中,CreateStandardAxis()函数表示创建标准轴,参数有四个可选

enum EAxisPos
	{
   
		LeftAxis = 0,
		BottomAxis,
		RightAxis,
		TopAxis
	};

分别表示左、下、右、上四个坐标轴。
SetAutomatic(false); SetMinMax(-20,450);
这两个函数中SetAutomatic()函数用于设置是否使能自动绘制坐标轴线系,具体效果可以自己去测试一下,SetMinMax()函数用于手动绘制坐标轴线系时设置坐标的最小和最大值。当使用此函数时,SetAutomatic()函数的参数必须设置为false。

2、设置控件图示信息

一张图表肯定是会有表头、坐标轴这些图示的,High Speed Chart中提供的绘制图示的方法还是挺简单的,通过以下代码即可实现图示信息的绘

  • 11
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值