拦截paint消息,在move结束的时候开放

解决方案 »

  1.   

    用Bitblt()API,或者先LockUpdate,等松开鼠标的时候才Update窗体。
      

  2.   

    怎么lock或拦截阿,还请大虾明言
      

  3.   

    用Windows的API,LockWindowUpdate(Handle),放开时LockWindowUpdate(0)
      

  4.   

    不知道你的代码怎么样?这样建议:在Move过程中不要拖动,在MoveUp的时候才移动控件的位置。这样就不会闪烁了。
      

  5.   

       if bStartDrag then
            begin
                    bStartMove:=true;
                    lockwindowupdate(form1.handle);
                    index:=strtoint(Timage(sender).hint);
                    ImgAnswer[index].Canvas.Lock;
                    ImgAnswer[index].left:=ImgAnswer[index].left+x-Istartx;
                    ImgAnswer[index].top:=ImgAnswer[index].top+y-iStartY;
                                  sleep(22);
                               bStartMove:=false;
                    lockwindowupdate(0);
                            end;