思路:
总共分2步
1 在OnLButtonDown中记住鼠标点击的位置2 在OnMouseMove中处理窗口移动
代码:
void CLoginDlg::OnLButtonDown(UINT nFlags, CPoint point) { m_pointLButtonDown = point;//记住点击位置 CDialogEx::OnLButtonDown(nFlags, point); } void CLoginDlg::OnMouseMove(UINT nFlags, CPoint point) { if (MK_LBUTTON&nFlags)//鼠标左键按下,移动窗口 { //得到窗口区域 CRect windowRect; GetWindowRect(&windowRect); //将鼠标客户区当前位置坐标转换为屏幕坐标 ClientToScreen(&point); //把当前位置转换为客户区原点 point.x -= m_pointLButtonDown.x; point.y -= m_pointLButtonDown.y; //客户区域移动到新原点 windowRect.MoveToXY(point); //移动窗口 MoveWindow(windowRect); } CDialogEx::OnMouseMove(nFlags, point); }