我在窗口中添加了mousedown,mouseup,mouseMove三个事件,mousedown记录矩形的起点,mouseMove进行动态数据绘制,MOUSEUP记录结束...当鼠标移动的时候,运行的良好.可是一旦在移动的过程中,停下来的时候,它就不再画图了,我想在它停下来的时候保持那个矩形,我是用invalite来使图像能动态画矩形,所以我想要判断鼠标是否停下来限制更新图像.我试了MouseHOver,结果在MOVE事件发生的时候,这个事件好像不会得到处理.不知道有没有好的办法来获得这个状态?

解决方案 »

  1.   

    我认为你应当保持一个需要绘制的矩形的记录,比如说矩形数组(用ArrayList可以动态添加)。在Paint方法中按照这个记录来绘制矩形。
      

  2.   

    http://blog.csdn.net/wzuomin/archive/2006/12/13/1441007.aspx
      

  3.   


    谢谢你的接连,我看了一下相关的运用...在CSDN中,有一篇范例讲述如何用DrawReversibleFrame.
    http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpref/html/frlrfsystemwindowsformscontrolpaintclassdrawreversibleframetopic.asp
    不需要再自己去手工做了...关于其它几位的热心帮助,我解释一下我原来的程序是用了两个POINT来存放位置的,所以和数组应该没有多少区别,因为总是只需要两个POINT来确定最新的矩形.
    而调用顺序,由于INVALITE是总是发生在下一次PAINT中,所以应该和顺序无关.当然,我都是猜测,没有试验过.如有误,请多多指教.