窗体提刷新的时候会把背景刷掉重新画,你要用窗体的重绘的话,需要在onpaint事件里面画

解决方案 »

  1.   

    那Image没有刷新事件,不会像窗体那样重绘,清除Canvas上的东西吗?
      

  2.   

    你可以看看Timage的源码,GetCanvas方法,还有Paint方法,你画的Canvas跟显示到Timage的Canvas是不一样的,刷新只会刷新显示的Canvas,画的Canvas没刷新
      

  3.   

    绘图的代码放到Form的OnPaint(WM_PAINT消息)事件处理函数中,然后Form每次收到需要重绘的消息后就会不停地绘制,所以图像不会消失,如果你不在OnPaint事件中处理,那么只是绘制一次,图像被遮住后需要重绘就会抹掉前面画的东西。同理IMAGE控件中已经内部在WM_PAINT消息中绘图了,你指定了一个图像给它,它就会处理了。你可以先阅读windows消息机制相关的书籍内容。