小弟想在Canvas上利用鼠标绘图。但在实现橡皮筋效果时图象会不停的闪烁,请问哪位可以帮我解决这个问题。我听说使用双缓存可以解决,但不知道怎么用,请各位赐教。最好可以给出具体一些的代码,分不够还可以加。

解决方案 »

  1.   

    使用GDI+
    www.2ccc.com有得下载
      

  2.   

    楼上的兄弟能不能说得清楚一点啊?DIBUltra我没有接触过,是什么东西呢?
      

  3.   

    其实很简单,你不要直接在显示的Canvas上绘制,那样会闪烁,双缓冲也是这个原理,如果要实现双缓冲,最简单的方法就是把你绘制所在的面板或者窗体的doubebuffer设置为true,就可以了。复杂的就是自己做一个临时canvas用来做翻转。
      

  4.   

    在TImage控件的Canvas上作图一般是不会闪的,可是当两个图形有部分重叠时重叠部分会变成背景色。我试过好几种画笔模式,都弄不了。这个问题怎么解决呢?还是需要双缓存吗?
      

  5.   

    两个图形互相重叠是有这个问题,原理和我上面说的一样,因为在可显示的canvas上多次绘图就会有闪烁出现,基本方法就是先绘制在不显示的canvas上再一次性绘制到显示的canvas上,其实双缓冲也是这样实现的,只不是delphi帮你实现了,简单的,你只要把所在容器的doublebuffer襗为true就可以了