我根据一个计算线程得出的数据点在一幅背景地图上绘制曲线,绘制曲线的函数没有在OnDraw里面调用(因为绘制的是实时曲线),这样窗口一旦有改变,原来绘制的曲线就会消失。怎样解决这个问题?
    如果保留数据点,再另写一个函数在OnDraw里调用实现重绘,会比较麻烦。有没有更好的办法?我曾想让程序保存当前窗口在内存里,然后在OnDraw里面BilBlt但是又不知道如何实现。
    还有,我在OnDraw里画背景地图使用了双缓冲,但是绘制曲线的时候并没有使用双缓冲,为什么绘图时还是没有闪烁呢?大侠解释一下?问题比较多,希望大侠们能够一一解答,急啊~~!

解决方案 »

  1.   

    最简单的办法,在计算线程中循环绘制。或者把启动线程的函数 (AfxBeginThread, etc.) 在 OnPaint()、OnEraseBkgnd() 中各放一个。
      

  2.   

    创建一个内存DC,首先画到内存DC,然后在OnDraw缩放显示
      

  3.   

    to  FlyAnyWhere(有道无知) & lanstar200(if(TRUE){马上给我分}) "你可在内存中建立一位图,把所绘值得图形绘制到它上面,当窗口改变是在重新贴一次就行。""创建一个内存DC,首先画到内存DC,然后在OnDraw缩放显示"就是不知道该怎样做啊!~给个例子,说具体点儿行不行?