回答之前大家不要把这个事情想得这么简单,我希望每个回答都是有实际意义的,对这个问题我已经研究了一年半,但还是没有好的方案.大家先打开系统自带的画图程序,然后画一条直线,大家注意到画这条直线的时候是非常流畅的,我们怎么才能达到同样的水平呢?
技术难点
  在画直线时,在直线没有画确定之前,线的另一端要跟鼠标移动,而且非常流畅,现在的解决方案都不完美
现在有技术
1.当画直线时,在每鼠标移动一次就重绘整个页面,然后再画出直线新的位置--这个常用的方法,严常闪烁
2.局部重绘:更上面一样,不同的是,只重绘直线包含的矩形区域,这个方法在直线短的时候效率还可以,但是如果直线拉长的时候,比如从左上角到右角,就要重绘整个图像,也不可取.
3.双缓冲,开始说得那么好,但也解决不了任何问题,因为问题的实质是在解决在绘制过程中的闪烁
4.透明画布:在画面的上面放一个透明的东西,我也没实现希望大家的回答都是实质性的突破,不要涉及到上面已经使用的方法

解决方案 »

  1.   

    如下这个例子只用到3,而且在很小的刷新率下都可以不闪烁,因此只要合理的应用double-buffer,解决你的问题是没有问题的。
    http://blog.csdn.net/knight94/archive/2006/08/18/1094078.aspx
      

  2.   

    hehe,只能说明楼主对技术还不了解,其实不就是一个橡皮筋程序吗?双缓冲是足够的了,
    并不想你说的会严重闪烁,要是严重闪烁,说明你没有正确使用.
      

  3.   

    纯C#画线没做过,不过我做GIS程序的时候,这个问题是最简单的了,不过用的是第二方开发平台