我所知道的办法是重画捕捉鼠标的事件,
1、OnMouseDown()的时候选中所要移动的图像
2、OnMouserMove()时候计算鼠标新位置,然后重画图像,不停的重画
3、OnMouserUp()的时候确定图像新位置或者,直接只要1,3
第二个步骤作为是否是移动图像,如果仅仅是做一个选择框的话,上面的方法足够了希望能有所帮助!

解决方案 »

  1.   

    裁减或者把图形换算成path一块挪
      

  2.   

    path好像不行。或者把图形存成一个描述数组,只存相对数值,实际重画的时候加点偏移量就行了。
      

  3.   

    一个shape基类,有坐标信息,派生直线,圆等子类,你可以设个参数为point的函数,查询该类是否覆盖某点,鼠标拖拽的时候查询出作用类,设置新坐标,然后invalid前后区域
      

  4.   

    基类有virtual的draw函数,忘了:)
      

  5.   

    谢谢 大天哥,和PSN兄了,我会努力用你们的办法实现的,谢谢了!