MFC下MSChart控件重绘曲线时清除原曲线方法
2011-11-14 14:44
253 查看
这段时间用mschart控件,需要不停的绘制曲线,而新的曲线要覆盖掉旧曲线,在网上查了很多相关的方法,要么是重绘mschart控件,要不就是对曲线的值赋0。
而对于动态绘制曲线时,第一种方法效率太低,试想下,重新画一条曲线,需要先将原曲线清除,在这里即是对mschart控件进行重绘,然后在开始画新的曲线,如果绘制新曲线的频率足够快,那对于mschart控件的重绘就会对cpu造成不小的负荷,这并不是我们希望看到的结果。
而第二种方法并不是起到清除原曲线的作用,而是将曲线的值都赋为0,使曲线与X轴重合。在这种方法下,如果原曲线与x、y轴并不是一种颜色,那么你所绘制的图便会再x轴上出现一条很扎眼的红色线条(如果你设置曲线颜色为红色),这违背了我们想清除原曲线的初衷,并且看起来也不会是我们想要的结果,故方法2依然不可取。
这几天试验了以上几种方法都不可行,后来发现,在准备绘制新曲线先,如果把mschart的列数设置成1,就可以清除原先曲线,然后再将列数属性设置成你所需要的列数即可,这样再开始画新的曲线时,就可以看到原曲线被清除的效果了,具体代码如下
m_Chart.SetRowCount(1);//设置列数为1,用以清空屏幕上曲线
m_Chart.SetRowCount(rowNum);//设置列数为rowNum
而对于动态绘制曲线时,第一种方法效率太低,试想下,重新画一条曲线,需要先将原曲线清除,在这里即是对mschart控件进行重绘,然后在开始画新的曲线,如果绘制新曲线的频率足够快,那对于mschart控件的重绘就会对cpu造成不小的负荷,这并不是我们希望看到的结果。
而第二种方法并不是起到清除原曲线的作用,而是将曲线的值都赋为0,使曲线与X轴重合。在这种方法下,如果原曲线与x、y轴并不是一种颜色,那么你所绘制的图便会再x轴上出现一条很扎眼的红色线条(如果你设置曲线颜色为红色),这违背了我们想清除原曲线的初衷,并且看起来也不会是我们想要的结果,故方法2依然不可取。
这几天试验了以上几种方法都不可行,后来发现,在准备绘制新曲线先,如果把mschart的列数设置成1,就可以清除原先曲线,然后再将列数属性设置成你所需要的列数即可,这样再开始画新的曲线时,就可以看到原曲线被清除的效果了,具体代码如下
m_Chart.SetRowCount(1);//设置列数为1,用以清空屏幕上曲线
m_Chart.SetRowCount(rowNum);//设置列数为rowNum
相关文章推荐
- MFC中动态创建列表控件及其刷新重绘的方法
- MFC 清除重绘picture 控件
- MFC重绘控件使CPU占用100%解决方法
- MFC 获取picture控件的鼠标点击坐标位置的方法
- 关于MFC项目中使用WebBrowser控件禁止脚本错误的方法
- MFC中spin control控件的使用方法
- MFC控件:listctrl使用方法总结
- MFC控件:listctrl使用方法总结
- MFC——编辑控件的7种方法
- MFC控件完全重绘从CWnd开始
- CButton控件:mfc自绘按钮类,1张图片显示多种状态的方法
- 基于MFC串口编程和曲线图绘制(visual studio2008,Teechart绘图控件)的程序总结
- mfc控件透明方法
- 【VS开发】VS2010 MFC中控件、对话框等背景颜色动态修改的方法
- MFC 控件贴图方法汇总
- mfc combo box 控件使用方法杂谈
- [MFC]设置对话框所有控件字体为同一字体的简单方法
- MFC 定制控件(Customize Control) 及 MFC CWnd和WIN32 HWND关联方法
- MFC 之 CButton 控件重绘(GDI+篇)
- MFC中Tab控件的使用方法