본문 바로가기

Programming Tips/MFC

타이틀바가 없는 다이얼로그의 이동

타이틀바가 없는 다이얼로그 또는 타이틀바가 아니라 다른 부분을 클릭해도
다이얼로그의 이동이 가능하게 해야 할 경우
다음과 같이
OnLButtonDown() 내에서
PostMessage를 이용하여 다음과 같은 메시지를 발생시키면 이동이 가능하다.

PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y));

WM_NCLBUTTONDOWN은 wParam으로 주어진 곳의 클라이언트을 클릭했다고 하더라도 클라이언트 영역이 아닌 곳을 클릭한 것과 같은 효과를 주며 wParam이
HTCAPTION이므로 클라이언트 영역을 클릭했어도 타이틀바를 클릭한 것과 같은 효과를 주는 것이다.

wParam으로 가능한 여러가지 값들은 다음과 같다.

HTTOP : 크기조정 가능한 윈도우의 위쪽 경계
HTBOTTOM : 크기조정 가능한 윈도우의 아래쪽 경계
HTLEFT : 크기조정 가능한 윈도우의 왼쪽 경계
HTRIGHT : 크기조정 가능한 윈도우의 오른쪽 경계
HTTOPLEFT : 크기조정 가능한 윈도우의 왼쪽 위 경계
HTTOPRIGHT : 크기조정 가능한 윈도우의 오른쪽 위 경계
HTBOTTOMLEFT : 크기조정 가능한 윈도우의 왼쪽 아래 경계
HTBOTTOMRIGHT : 크기조정 가능한 윈도우의 오른쪽 아래 경계

HTMINBUTTON , HTREDUCE: 최소화 버튼
HTMAXBUTTON, HTZOOM : 최대화 버튼
HTCLOSE : 닫기 버튼
HTMENU : 메뉴
HTSYSMENU : 시스템 메뉴
HTCLIENT : 클라이언트 영역