无标题栏的窗体,如何用鼠标来移动它?

解决方案 »

  1.   

    Form1.OnMouseDown里:
        if Button=mbLeft then
        begin
          ReleaseCapture;
          SendMessage(Handle,WM_NCLBUTTONDOWN,HTCAPTION,0); 
        end;
      

  2.   

    声明一个过程
    procedure SetClientToHTCAPTION(var msg: TWMNChitTest); message WM_NCHITTEST;
    TForm1.SetClientToHTCAPTION(var msg: TMessage);
    begin
      msg.Result := HTCAPTION
    end;
      

  3.   

    Form1.OnMouseDown里:If button = mbleft then
      begin
        ReleaseCapture;
        // 发送移动窗口信息
        perform (WM_SYSCOMMAND,SC_MOVE OR 2, 0);
      end;
      

  4.   

    TForm1 = class(TForm)
        Button1: TButton;
        Panel1: TPanel;
        procedure Button1Click(Sender: TObject);
      private
        procedure wmnchittest(var msg:twmnchittest);message wm_nchittest;  public
        { Public declarations }
      end;procedure TForm1.wmnchittest(var msg: twmnchittest);
    begin
    inherited;
    if (htclient=msg.result) then msg.result:=htcaption;end;
      

  5.   

    procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; 
      Shift: TShiftState; X, Y: Integer); 
    begin 
      ReleaseCapture; 
      SendMessage(Form1.Handle, WM_SYSCOMMAND, $F012, 0); 
    end;