请zhouyong2052(老彪) 详细的说一下

解决方案 »

  1.   

    在GDI中这种情况下是用异或XOR绘制方法来解决的。使用异或也是是反转,绘制二次时,仍然是原来的背景。
    可惜的是GDI+是不支持异或绘制的。为了弥补这个缺点,在System.Windows.Forms名空间下提供了一个折衷的办法。、、
    ControlPaint.DrawReversibleLine基本可以达到异或绘制的效果,满足大部分情况下的要求。也不要尝试P/INVOKE SETROP2函数,那样的话,整个绘制你都要用GDI做,又会到GDI的老路上去了。
      

  2.   

    使用Region来解决不就可以了吗?
      

  3.   

    可以试试看分层啊~~~假设是用picturebox,创建一个相同尺寸的bitmap,那么在onpaint的时候画一下这个bitmap不就好啦~~~~擦的时候直接在bitmap上面擦,自然不会损坏下面的背景。