삽질하지말자!!!
처음 시나리오.
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);
}
이러면 끝!!!