思路:
总共分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);
}