您的位置:首页 > 其它

MFC如何用正确的方式来实现鼠标移动对话框。

2012-09-23 00:20 543 查看
void CLoginDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if(m_bIsLButtonDown)
{
CRect rect;
GetClientRect(&rect);
ClientToScreen(&point);
MoveWindow(point.x-m_curPoint.x,point.y-m_curPoint.y,rect.right,rect.bottom,FALSE);
}
CDialog::OnMouseMove(nFlags, point);

}
void CLoginDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
m_bIsLButtonDown = TRUE;
m_curPoint = point;
SetCapture(); //这句很重要,不然会出现由于鼠标滑动太快而让窗口失去焦点的BUG。
CDialog::OnLButtonDown(nFlags, point);
}
void CLoginDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
m_bIsLButtonDown = FALSE;
ReleaseCapture(); //最后记得要释放哦!
CDialog::OnLButtonUp(nFlags, point);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mfc