MFC下MSChart控件重绘曲线时清除原曲线方法

这段时间用mschart控件,需要不停的绘制曲线,而新的曲线要覆盖掉旧曲线,在网上查了很多相关的方法,要么是重绘mschart控件,要不就是对曲线的值赋0。

而对于动态绘制曲线时,第一种方法效率太低,试想下,重新画一条曲线,需要先将原曲线清除,在这里即是对mschart控件进行重绘,然后在开始画新的曲线,如果绘制新曲线的频率足够快,那对于mschart控件的重绘就会对cpu造成不小的负荷,这并不是我们希望看到的结果。

而第二种方法并不是起到清除原曲线的作用,而是将曲线的值都赋为0,使曲线与X轴重合。在这种方法下,如果原曲线与x、y轴并不是一种颜色,那么你所绘制的图便会再x轴上出现一条很扎眼的红色线条(如果你设置曲线颜色为红色),这违背了我们想清除原曲线的初衷,并且看起来也不会是我们想要的结果,故方法2依然不可取。

这几天试验了以上几种方法都不可行,后来发现,在准备绘制新曲线先,如果把mschart的列数设置成1,就可以清除原先曲线,然后再将列数属性设置成你所需要的列数即可,这样再开始画新的曲线时,就可以看到原曲线被清除的效果了,具体代码如下

            m_Chart.SetRowCount(1);//设置列数为1,用以清空屏幕上曲线
            m_Chart.SetRowCount(rowNum);//设置列数为rowNum

你可能感兴趣的:(MFC)