본문 바로가기

프로그래밍/리서치결과

mfc 창움직이기

보통 창을 움직이게 하려면 마우스 왼쪽 버튼을 클릭해서 드래그 하기 때문에, WM_LBUTTONDOWN 메시지를 추가하여 메시지를 핸들링 해줍니다.

그리고 아래의 코드를 입력시켜 주면 됩니다.

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

즉, Non-Client(NC)영역이 클릭되었고, WPARAM으로 넘어온 값인 HTCAPTION인 타이틀바가 클릭되었다고 메시지를 보내서, 타이틀바가 클릭된 것처럼 흉내를 내는 것이다.


아래는 WM_NCLBUTTONDOWN 메시지에 올 수 있는 WPARAM값의 일부이다.(출처 네이버카페)

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

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