본문 바로가기
IT-개발,DB

[개발] 델파이 - 캡션바 없는 폼의 드래그(Drag)

by SB리치퍼슨 2010. 10. 14.


캡션바 없는 폼의 드래그(Drag)

안녕하세요...

캡션바가 없는 폼을 드래깅한다고 생각해 보신적이 있나요...
없어요...
왜 있잖아요...
마이크로 소프트사의 ToolBar를 생각해 보세요..
FrameWindow의 이곳 저곳에서 도킹하는....

그래서 말인데요...

이것에 관한 팁을 드릴께요....
이것을 하기 위해서는 윈도우의 메시지를 이용한답니다...
마치 캡션바를 클릭한 상태에서 마우스를 움직인다고
윈도우를 속이는 거죠...(사기꾼인가...?)

그럼 한 번 소스 코드를 봅시다....

unit DragMain;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    // 메시지를 사용하는 프로시져...
    procedure WMNCHitTest(var M: TWMNCHitTest); message wm_NCHitTest;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);
begin
  inherited;                     // 상속된 메시지 핸들러 호출
  if M.Result = htClient then    // 클라이언트 영역인가?
    M.Result := htCaption;       // 윈95에게 사기를 친다...
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Close; // 실행 종료
end;

end.


이상 입니다...
이것을 이용해서 도킹 툴바도 작성해 보시길....
여러분이 노력한 만큼 성과는 나타납니다....

그럼 ...

날고 싶은 소백촌닭 @_-     ....
http://sobakcc.com

반응형

댓글