如何用MFC画动态曲线图

ai604233436 2015-07-28 09:15:13
请教各位大神,如何通过串口通讯一边接受数据一边画出曲线图?我之前用对话框做一个串口通讯,能将传来的数据都保存在txt文件中,又用多文档做一个读取txt文件能画图。现在想将两个功能合二为一在一个程序中,这样怎么作?不用控件能接受串口传来的数据么?我之前画图用的是ondraw。
...全文
745 25 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2015-09-07
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
向立天 2015-08-01
  • 打赏
  • 举报
回复
引用 18 楼 ai604233436 的回复:
[quote=引用 17 楼 xianglitian 的回复:] [quote=引用 14 楼 ai604233436 的回复:] [quote=引用 11 楼 xianglitian 的回复:] 可以参考这篇博客 http://blog.csdn.net/xianglitian/article/details/6100767
但是我还是不会用[/quote]示例源码加博客讲解都有了你还不会用 你还想让大家怎么帮忙[/quote] 就是有几步不会,那个自定义的控件定义成类没弄出来,不知道怎么弄,添加类的没有自定义的控件的类的,[/quote]自定义控件的类是自己定义的不是现成的 关于自定义控件的使用你可以参考这篇文章http://blog.csdn.net/xianglitian/article/details/6075653
aaa2742 2015-07-31
  • 打赏
  • 举报
回复
看了看回答,大多数站着说话不腰疼。如果是自己练习用,直接找个好使的控件进行使用;商业用的话,需要自己搞了,因为涉及到版权以及其他协议,真他妈麻烦。 我最近也在搞绘图这一块,像单纯的显示、绘制曲线等并不是很困难,难在什么地方?难在曲线的管理以及扩展,你可看看网上的控件,看看历史版本,那些人也是搞了很长时间才整出来的,而且还是在不断使用改进以及结合他人的意见。我现在基本搞成了一个但管理及扩展很差劲。 所以建议你如果不强调开发语言等,建议使用C#的ZedGraph控件能够解决一系列问题(当然是你不需要在曲线上显示画他东西了,只是显示而已,否则也达不到你想要的效果,控件就是这一点不好),另有MFC里的字符转换等问题以及原来不少开发的控件类都是在VC6.0上,很多也有问题,够头疼的。 楼主自己斟酌一下吧,最近我痛定思痛,觉的如果不是很偏底层的东西还是用.NET来做,涉及底层的再用C++,现在再看MFC工程感觉怎么那么多零碎啊,自己在重新开发也只不过在重新走一遍别人的路而已,咱考虑的问题别人也早已考虑到了,也不见的有多大创新,个人认为,惭愧。。
aaa2742 2015-07-31
  • 打赏
  • 举报
回复
引用 10 楼 weiaichun 的回复:
如果数据量大,绘制效率又要求高的化,用opengl,GDI的效率很差
楼主能详细说一下吗?或者给个参考
无水一痕_Lee 2015-07-31
  • 打赏
  • 举报
回复
引用 11 楼 向立天的回复:
可以参考这篇博客 http://blog.csdn.net/xianglitian/article/details/6100767
很实用
ai604233436 2015-07-30
  • 打赏
  • 举报
回复
引用 17 楼 xianglitian 的回复:
[quote=引用 14 楼 ai604233436 的回复:] [quote=引用 11 楼 xianglitian 的回复:] 可以参考这篇博客 http://blog.csdn.net/xianglitian/article/details/6100767
但是我还是不会用[/quote]示例源码加博客讲解都有了你还不会用 你还想让大家怎么帮忙[/quote] 就是有几步不会,那个自定义的控件定义成类没弄出来,不知道怎么弄,添加类的没有自定义的控件的类的,
向立天 2015-07-30
  • 打赏
  • 举报
回复
引用 14 楼 ai604233436 的回复:
[quote=引用 11 楼 xianglitian 的回复:] 可以参考这篇博客 http://blog.csdn.net/xianglitian/article/details/6100767
但是我还是不会用[/quote]示例源码加博客讲解都有了你还不会用 你还想让大家怎么帮忙
kuankuan_qiao 2015-07-30
  • 打赏
  • 举报
回复
自在飞花6541 2015-07-30
  • 打赏
  • 举报
回复
一条线程接收数据,保证数据完整性,每接收一条数据,保存到list中,并发送一条消息,来触发ondraw,在ondraw中绘制list中的数据
阿源是少年 2015-07-29
  • 打赏
  • 举报
回复
看不懂代码的话就要修炼内功了,先把多线程和GDI编程熟悉了,之后那都不是事儿
gz_qmc 2015-07-29
  • 打赏
  • 举报
回复
一,给曲线开辟一个缓冲区 二、将缓冲区的数据画到窗口上 三、定时取得串口的数据,填写到缓冲区 四、定时通知窗口重新绘图
gz_qmc 2015-07-29
  • 打赏
  • 举报
回复
引用 14 楼 ai604233436 的回复:
[quote=引用 11 楼 xianglitian 的回复:] 可以参考这篇博客 http://blog.csdn.net/xianglitian/article/details/6100767
但是我还是不会用[/quote] 意料之中,没有思维逻辑,给你源代码又如何? 还是退而结网,玩熟数据结构吧
ai604233436 2015-07-29
  • 打赏
  • 举报
回复
引用 1 楼 pcradio 的回复:
串口开线程受数据,然后把数据丢到CDocument的数据结构中,这个结构可以是链表也可以是动态数组,每当你的线程收到数据了,就把数据丢进去,然后给你的程序发送一个消息通知其Invalidate重画,重画就从Document拿数据来画
感觉好复杂啊,没有简单的方法么?
ai604233436 2015-07-29
  • 打赏
  • 举报
回复
感觉好复杂啊~
ai604233436 2015-07-29
  • 打赏
  • 举报
回复
引用 11 楼 xianglitian 的回复:
可以参考这篇博客 http://blog.csdn.net/xianglitian/article/details/6100767
但是我还是不会用
ai604233436 2015-07-29
  • 打赏
  • 举报
回复
引用 11 楼 xianglitian 的回复:
可以参考这篇博客 http://blog.csdn.net/xianglitian/article/details/6100767
看到了。
ai604233436 2015-07-29
  • 打赏
  • 举报
回复
引用 11 楼 xianglitian 的回复:
可以参考这篇博客 http://blog.csdn.net/xianglitian/article/details/6100767
这个我看了,不过有些地方还不太懂,就是那个类的在哪命名,其次是哪个控件在哪单文档,多文档 ,对话框都好使么?
向立天 2015-07-29
  • 打赏
  • 举报
回复
weiaichun 2015-07-29
  • 打赏
  • 举报
回复
如果数据量大,绘制效率又要求高的化,用opengl,GDI的效率很差
阿源是少年 2015-07-29
  • 打赏
  • 举报
回复
引用 7 楼 ai604233436 的回复:
[quote=引用 5 楼 pcradio 的回复:] [quote=引用 3 楼 ai604233436 的回复:] [quote=引用 1 楼 pcradio 的回复:] 串口开线程受数据,然后把数据丢到CDocument的数据结构中,这个结构可以是链表也可以是动态数组,每当你的线程收到数据了,就把数据丢进去,然后给你的程序发送一个消息通知其Invalidate重画,重画就从Document拿数据来画
感觉好复杂啊,没有简单的方法么?[/quote] 这个不复杂,你觉得复杂是因为你不熟悉,就是线程+重绘[/quote] 好吧,确实是不熟悉。有实例可供参考么?[/quote] 没有具体的例子,你就网上参考win32多线程和GDI绘图
加载更多回复(5)

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧