不使用标题栏拖动窗体

方法一、二、三效果图:

不使用标题栏拖动窗体

方法四效果图:

不使用标题栏拖动窗体

方法一:

unit Unit1;



interface



uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs;



type

  TForm1 = class(TForm)

    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

    procedure FormMouseUp(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

  end;



var

  Form1: TForm1;



implementation



{$R *.dfm}



var

  f: Boolean;

  x1,y1: Integer;



procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

  x1 := X;

  y1 := y;

  f := True;

end;



procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,

  Y: Integer);

begin

  if not f then Exit;

  Left := Left + X - x1;

  Top := Top + Y - y1;

end;



procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

  f := False;

end;



end.


 
   
方法二:

unit Unit1;



interface



uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs;



type

  TForm1 = class(TForm)

    procedure MyMsg(var msg: TWMNCHitTest); message WM_NCHITTEST;

  end;



var

  Form1: TForm1;



implementation



{$R *.dfm}



procedure TForm1.MyMsg(var msg: TWMNCHitTest);

begin

  Inherited;

  if msg.Result = HTCLIENT then

    msg.Result := HTCAPTION;

end;



end.


 
   
方法三:

unit Unit1;



interface



uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs;



type

  TForm1 = class(TForm)

    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

  end;



var

  Form1: TForm1;



implementation



{$R *.dfm}



procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

  ReleaseCapture;

  SendMessage(Handle, WM_SYSCOMMAND, $F011, 0);

  {参数3在 $F011-$F01F 之间均可都是移动控件}

end;



end.


 
   
方法四:

unit Unit1;



interface



uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, ExtCtrls;



type

  TForm1 = class(TForm)

    Panel1: TPanel;

    procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

  end;



var

  Form1: TForm1;



implementation



{$R *.dfm}



procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

  ReleaseCapture;

  SendMessage(Handle, WM_SYSCOMMAND, $F011, 0);

end;



end.


 
   

你可能感兴趣的:(使用)