做程序时碰到这样的问题:当我点击form1窗体的标题栏拖动窗体时这个事件怎么获得。如果这个事件获得不了,当我移动结束时获得也可以! 大侠们怎么解决啊?

解决方案 »

  1.   

    消息:
    procedure WMMOVE(var msg: TWMMOVE);message WM_MOVE;procedure TForm1.WMMOVE(var msg: TWMMOVE);
    begin
      showmessage('asdf');
    end;
      

  2.   

    如果同时要处理多个消息,下面的方法更合适:声明:
    procedure WndProc(var Message: TMessage);override;定义:
    procedure TForm1.WndProc(var Message: TMessage);
    begin
      if (Message.Msg = WM_MOVE) then
        showmessage('move')
      else
        Dispatch(Message);
    end;
      

  3.   

    谢谢!但是
    没解决 :(  ,这个办法只能弹出消息,当我把message WM_MOVE;去掉时这个过程根本就不执行啊?
    我是要移动form1时,form2也移动该怎么办? 或者form1移动结束后form2移动。 移动我知道,但是就是不知道怎么来通过form1的移动来触发这个事件? :(