请问如何在delphi中用sendmessage移动窗体?

解决方案 »

  1.   

    请问如何在delphi中用sendmessage移动窗体,窗体形式是none?
      

  2.   

    procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      If Button=mbLeft Then
      Begin
        ReleaseCapture;
        PerForm(WM_SYSCOMMAND,$F012,0);
      End;
    end;
      

  3.   

    也可以这么做啊:.....
    type
      TForm2 = class(TForm)
        procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
          Y: Integer);
    var
      Form2: TForm2;
      Y1x,Y1y:Integer;
    {$R *.dfm}procedure TForm2.FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      Y1x:=x;
      Y1y:=y;
    end;procedure TForm2.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      if ssLeft in Shift then
      begin
        Form2.Left:=Form2.Left+x-Y1x;
        Form2.Top:=Form2.Top+y-Y1y;
      end;
    end;
    思想是骗系统,让它以为我们点击的是标题栏!
    呵呵!
      

  4.   

    在FORM的Private定义中作如下声明:
        procedure WMNCHitTest(var M: TWMNCHitTest); message wm_NCHitTest;procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);
    begin
      inherited;                   
      if  M.Result = htClient then 
        M.Result := htCaption;     
                                   
    end;
      

  5.   

    好象还有一种方法是欺骗系统,把发送到客户区的mousedown消息变为标题栏的消息