可以采用这种技术(暂且称之为CDC缓冲):用一个memory CDC,在其中绘制背景和除当前选中bezier曲线外的所有曲线。当你移动选中曲线时,计算最小更新矩形,然后从以上CDC上拷贝该矩形中的图像,最后再把选中曲线绘制一下就可以了。这种技术中要注意两点:1、选中曲线改变时,需要更新上述memory CDC;2、更新矩形要尽量小,以求得最快的速度。必要时还可以用更新若干小矩形的办法,比如一根长的斜线。
另外,必要时还可以对背景位图再作一级CDC缓冲。
祝成功顺利。

解决方案 »

  1.   

      Thank you for answering .
      注意的第一点:选中曲线改变时,需要更新上述memory CDC;
      问题是:假设有100条曲线,1,2,3,...100.先选中曲线1,这时memdc 中是背景和 曲线
      2,...100.曲线1改变后,更新memdc.不妨记这时memdc 的状态为status1,that's ok.
      后来选中曲线2,这时memdc 中应该是背景和 曲线1,3...100.记这时memdc 的状态为status2.如何从status1 变到status2,是不是在背景上重画曲线1,3...100.这样效率
    不高吧?
      欢迎继续讨论.