삽질하지말자!!!

처음 시나리오.
1. LBUTTONDOWN 메세지를 받아서 최초 클릭위치 저장
2. MOUSEMOVE 메세지를 받아서 드래그 상태이면 이동한 만큼 다이얼로그 이동. 클릭위치 업데이트

이렇게 했었는데.. 뭐 가능할지도..안해봐서 모르겠지만 더 편한 방법이 있습니다.

바로 LBUTTONDOWN 메세지를 받으면 다이얼로그박스타이틀바 에 메세지를 보내는거죠.

즉 타이틀바를 클릭해서 드래그하는것 과 같은 효과를 주는겁니다.

void CMyDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
 RECT rect;
 GetWindowRect(&rect);
 if( ( point.x < rect.right  || point.x > rect.left ) ||
  ( point.y < rect.top || point.y > rect.bottom ) )
 {
  DefWindowProc(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y));
 }

 CDialog::OnLButtonDown(nFlags, point);
}

이러면 끝!!!

+ Recent posts