자료2007. 3. 10. 17:57
MOUSEDOWN과 MOUSEMOVE를 이용할 수도 있지만, 다음과 같은 한 줄이면 됩니다.


원하는 영역이 클릭되었을 때 다음 함수를 호출하면 됩니다-


::SendMessage(AfxGetMainWnd()->m_hWnd,
          WM_NCLBUTTONDOWN,HTCAPTION,0);



MFC의 경우 위와 같고, 다른 경우에도 최상위 윈도우에 같은 메시지를 전송하면 됩니다.

---

WM_NCLBUTTONDOWN은 wParam으로 주어진 곳의 Non-Client영역을 클릭했을 때

클라이언트 영역을 클릭한 듯한 효과를 내며,

wParam이 HTCAPTION이므로 타이틀바를 클릭한 듯한 효과를 냅니다.


다음은 wParam으로 가능한 다른 값들 중 일부입니다.


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

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

Posted by jongwook