폼 형태가 없는 윈도우 프로그램을 만들면, 윈도우 이동, 크기 변경, 닫기 버튼 등을 커스터마이징해서 만들어야 한다.
그리고, 이에 해당하는 이벤트를 SendMessage를 사용해서 흉내내줘야 한다.
선언과 사용은 다음과 같다.
원하는 콘트롤에서 MouseDown 이벤트가 발생하면 아래와 같은 코드로 원하는 메시지를 던지면 된다.
메세지 종류와 해당하는 상수값은 다음과 같다.
메시지명 |
상수값 |
설명 |
HTBORDER | 18 |
리사이징 되지 않는 윈도우의 Border에서 일어나는 이벤트 |
HTBOTTOM | 15 |
리사이즈 가능한 윈도우의 하단 Border에서 일어나는 이벤트, 아래쪽 세로 방향으로 리사이징된다. |
HTBOTTOMLEFT |
16 |
리사이즈 가능한 윈도우의 좌하단 Border에서 일어나는 이벤트, 왼쪽 세로, 가로 방향으로 리사이징된다. |
HTBOTTOMRIGHT |
17 |
리사이즈 가능한 윈도우의 우하단 Border에서 일어나는 이벤트, 오른쪽 세로, 가로 방향으로 리사이징된다. |
HTCAPTION |
2 |
윈도우의 Title 영역에서 일어나는 이벤트, 윈도우를 이동시킨다 |
HTCLIENT |
1 |
Client 영역에서 일어나는 이벤트 |
HTCLOSE |
20 |
종료 버튼에서 일어나는 이벤트 |
HTERROR |
-2 |
|
HTGROWBOX |
4 |
In a size box (same as HTSIZE). |
HTHELP |
21 |
|
HTHSCROLL |
6 |
가로 스크롤에서 일어나는 이벤트 |
HTLEFT |
10 |
리사이즈 가능한 윈도우의 좌측 Border에서 일어나는 이벤트, 왼쪽 가로 방향으로 리사이징된다. |
HTMENU |
5 |
|
HTMAXBUTTON |
9 |
최대창 버튼에서 일어나는 이벤트 |
HTMINBUTTON |
8 |
최소창 버튼에서 일어나는 이벤트 |
HTNOWHERE |
0 |
|
HTREDUCE |
8 |
|
HTRIGHT |
11 |
리사이즈 가능한 윈도우의 우측 Border에서 일어나는 이벤트, 오른쪽 가로 방향으로 리사이징된다. |
HTSIZE |
4 |
|
HTSYSMENU |
3 |
|
HTTOP |
12 |
윈도우 상단 Border에서 일어나는 이벤트 |
HTTOPLEFT |
13 |
윈도우 좌상단 Border에서 일어나는 이벤트 |
HTTOPRIGHT |
14 |
윈도우 우상단 Border에서 일어나는 이벤트 |
HTTRANSPARENT |
-1 |
|
HTVSCROLL |
7 |
세로 스크롤에서 일어나는 이벤트 |
HTZOOM |
9 |
|
'C#.NET' 카테고리의 다른 글
특정 웹서버의 시간 알아내기 (0) | 2012.04.12 |
---|