当主窗体在屏幕上移动时,另一窗体要跟着移动位置。主窗体的移动事件怎样捕获。

解决方案 »

  1.   

    同进程的话很简单: 
    写application.OnMessage事件,在那里判断handle=主动移动窗口form.handle并且是移动消息(WM_MOVE或WM_WINDOWPOSCHANGED)或者替换主动移动窗口form.WindowProc(如果你是写控件的话), 在那里可以截获该窗口的所有消息如果是不同进程的话需要写hook
      

  2.   

    http://search.csdn.net/Expert/topic/425/425366.xml?temp=.9040033
    主  题:  原来“磁性窗体”这样简单//zswang 
    作  者:  zswang (伴水清清)(专家门诊清洁工)  
    等  级:    
    信 誉 值:  145 
    所属论坛:  Delphi 基础类 
    问题点数:  17 
    回复次数:  90 
    发表时间:  2001-12-17 10:49:06Z 
      

  3.   

    在主窗体中定义这个方法:
        procedure WMMove(var Msg: TMessage); message WM_MOVING;
        var
          PR: PRect;
          ......
         PR= Pointer(Msg.lParam);//从PR中可以得到主窗口的位置