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);
}
{
// 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对话框禁止移动 使标题栏不响应鼠标消息 通过客户区移动窗体 OnNcHitTest()的实现
- MFC对话框禁止移动 使标题栏不响应鼠标消息 通过客户区移动窗体 OnNcHitTest()的实现
- VC MFC 对话框,如何实现鼠标拖动显示一个框,松开鼠标框就消失
- MFC 对话框应用程序去掉标题栏如何添加鼠标移动功能
- MFC对话框程序中当鼠标移动到控件上后改变形状
- 如何用JS代码实现鼠标移动,背景变色?
- 视图状态下鼠标移动到某文本上弹出小对话框-js实现
- [MFC]SDI在图片背景上实现文本跟随鼠标移动
- 如何实现鼠标在虚拟机redhat下的自由移动
- .Net语言 APP开发平台——Smobiler学习日志:Poplist控件的正确打开方式以及如何快速实现
- [unity3d]如何实现游戏对象跟随鼠标方向移动
- 如何实现基于MFC对话框的PCL显示
- delphi中 panel如何在Form实现鼠标移动拖放
- 标题超过60个字符,显示省略号,鼠标移动到标题上面,显示全部标题的实现方式
- 如何实现基于MFC对话框的PCL显示(1)
- [unity3d]如何实现游戏对象跟随鼠标方向移动
- MFC 实现对话框 背景贴图的几种方式
- MFC中基于对话框利用CRectTracker实现多矩形绘制、选择、拉伸、移动和删除
- MFC中如何实现对话框的打印
- C#如何实现标题栏随鼠标移动的效果?