之前创建Dialog时把Border选择none,导致对话框无法拖动,那么如何实现拖动呢?
添加如下消息WM_NCHITTEST
LRESULT CCameraMonitorDlg::OnNcHitTest(CPoint point)
{return (CDialogEx::OnNcHitTest(point) == HTCLIENT) ? HTCAPTION : CDialogEx::OnNcHitTest(point);
}
或者这么写也是可以的:
LRESULT CCameraMonitorDlg::OnNcHitTest(CPoint point)
{ScreenToClient(&point);
CRect rc;
GetClientRect(&rc);
if (rc.PtInRect(point))
return HTCAPTION;
else
return CDialog::OnNcHitTest(point);
}
意思就是当你单击对话框的客户区域的时候,系统会认为你在点击标题栏,这样就可以实现拖动了