Dev/Delphi
Form의 BorderStyle=bsNone일때 폼의 이동
슬픈윈드
2011. 5. 31. 10:30
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
procedure WMCHitTest(var msg : TMessage); message WM_NCHITTEST;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
// 판넬로 움직이기
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
// 이건.. 폼의 캡션을 클릭했을때와 같은 역할을 하게 한다.
end;
// 폼으로 움직이기
procedure TForm1.WMCHitTest(var msg: TMessage);
begin
inherited; // 이거 꼭 포함^^
If msg.Result = htClient Then
msg.Result := htCaption
end;
end.
출처 : http://yuhani.springnote.com/pages/973228
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
procedure WMCHitTest(var msg : TMessage); message WM_NCHITTEST;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
// 판넬로 움직이기
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
// 이건.. 폼의 캡션을 클릭했을때와 같은 역할을 하게 한다.
end;
// 폼으로 움직이기
procedure TForm1.WMCHitTest(var msg: TMessage);
begin
inherited; // 이거 꼭 포함^^
If msg.Result = htClient Then
msg.Result := htCaption
end;
end.
출처 : http://yuhani.springnote.com/pages/973228