请问大家在用vc编写实时作图程序时,每次是全部重绘图形还是只更新将要作图的一部分。如果全部重绘的话感觉很浪费资源,但是如果每次只画一部分的话,在窗口大小调整或其他情况下将不能显示全部图像。郁闷中请指教。

解决方案 »

  1.   

    实时绘图,用内存dc的方式就可以了,即用双缓冲方式,一般能满足要求如果还想提一下速度,可以考虑用DirectX
      

  2.   

    那如果觉得这样不行那屏幕变化ONSIZE时候就刷全屏幕,在其他情况下刷部分。
    其实一般是用内存DC双缓存是不太会有太大问题,现在屏幕最大也就这么点,你要刷的就是 全屏幕大小。
      

  3.   

    图像改变时用GetDC得到的DC指针上画就可以了,收到ON_PAINT时全部重绘,如果要求高一点的话用内存DC双缓存,再要求高一点的话用DirectX
      

  4.   

    最简单的办法是用异或,gdi或opengl都行,
    如画线橡皮筋:
    cdc::SetROP2(R2_XORPEN)
    用上次坐标画线(即擦除线)
    用当前坐标画线这样的话你就不用刷屏了
      

  5.   

    双缓存,重载OnEraseBkgnd都可以