2013/05/09
[VCPP] 타이틀 바 없는 윈도우 마우스로 이동하기
// Method #1
LRESULT CDialogClass::OnNcHitTest(CPoint point)
{
return HTCAPTION;
}
// Method #2
void CDialogClass::OnLButtonDown(UINT nFlags, CPoint point)
{
PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y));
CDialogEx::OnLButtonDown(nFlags, point);
}
타이틀 바가 없는 윈도우를 만들경우 별도의 작업 없이는 이 윈도우를 이동 할 수 없다.
기존 방법과 같이 마우스 드래그 만으로 윈도우를 이동하는 간단한 방법이 두 가지 있는데,
첫 번째는 WM_NCHITTEST 메세지 처리 핸들러에서 마우스 커서가 타이틀바에 있는 것처럼 처리(Method #1)하면 쉽게 윈도우를 이동할 수 있다. 하지만 이 방법에는 단점이 있다. 클라이언트 영역에서의 마우스 메세지 핸들링이 원활하지 않게 된다. 마우스 이벤트를 제대로 이용하려면 두 번째 방법을 이용해야 한다.
두 번째 방법은 마우스 왼쪽 버튼이 눌렸을 경우에 윈도우의 타이틀 바에서 왼쪽 버튼이 눌렸다는 메세지 강제로 보내는
Original Post : http://neodreamer-dev.tistory.com/708
Labels:
HTCAPTION
,
TistoryOldPost
,
WM_NCLBUTTONDOWN
,
윈도우이동
,
캡션바
,
타이틀바
Subscribe to:
Post Comments
(
Atom
)
No comments :
Post a Comment