캡션바 없는 폼의 드래그(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
'IT-개발,DB' 카테고리의 다른 글
[개발/델파이] 볼랜드_그뿌리와20여년의흔적들... (0) | 2010.10.14 |
---|---|
[개발/델파이] 델파이 객체지향프로그래밍을 위한 20가지 규칙 (0) | 2010.10.14 |
[IT/개발] DB 오류시 DBerror 메세지 보기 (0) | 2010.10.14 |
[it/개발] Update 파일체크 및 업데이트 (0) | 2010.10.14 |
[개발] [강좌][번역본]델파이로 윈도우즈 스크린 세이버 만들기 (0) | 2010.10.14 |
댓글