假设有2组大量的实时采集的数据,要求在同一个客户区(PICTURE控件上)界面上同时显示,一组频率是200毫秒,一组是50毫秒的实时数据曲线????
用下面的函数绘制
m_dcPlot.BitBlt(m_rectPlot.left, m_rectPlot.top+1, 
                    m_nPlotWidth, m_nPlotHeight, &m_dcPlot, 
                    m_rectPlot.left+m_nShiftPixels, m_rectPlot.top+1, 
                    SRCCOPY) ;
是不是叫什么双闲存方法,在内存里先把曲线画出来,然后再描绘在控件上。这个方法描绘相同频率的曲线我知道,但是怎么绘制不同频率的曲线???那位大虾,有没没有知道是否可以实现,该如何实现???最好有原码参考。[email protected].谢谢

解决方案 »

  1.   

    双缓冲用两个timer,计时到之后,刷屏幕
      

  2.   

    我采集的数据是16个通道,可惜频率都相同,用一个数组就可以同时显示绘制出来。你的这个问题我在想是不是可以这样解决,在其中一个定时器实现中设置个全局标志量,初始为0,每50毫秒计数一次,响应这个定时动作,到这个计数变量为4时,重新置0,并仍然响应该定时动作同时也做200毫秒的绘制动作,这样就可以只用一个定时器实现了。如果设置另个Timer的话我想程序会一直在响应那个50毫秒而没办法响应那个200毫秒的定时。还有一种方法不知道可不可行,在你自己的那个派生Static类中重载OnTimer(),这样就可以各自独立去处理,不过这样要是两个对象,好象跟你的原意不符,没实现过,试试看。