当前位置:   article > 正文

VC/MFC拖动窗口任意位置移动窗口_windows对话框任意拖动 mfc

windows对话框任意拖动 mfc

除了拖动标题栏移动窗口以外,我们也可以拖动窗口任意位置(除控件)位置而使对话框移动。

这里只讲述基于对话框的程序

  1. class c**dlg:public CDialog
  2. {
  3. //Construction
  4. public:
  5. Crect startRect; //窗口的初始位置所在的矩形
  6. bool isMouseDown; //鼠标是否按下
  7. CPoint startPoint; //鼠标按下的位置
  8. .......

其次添加OnLButtonDown消息响应函数

  1. void c**dlg::OnLButtonDown(UINT nFlags, CPoint point)
  2. {
  3. isMouseDown=true;
  4. startPoint = point;
  5. this->GetWindowRect(startRect);
  6. CDialog::OnLButtonDown(nFlags, point);
  7. }

添加OnMouseMove消息响应函数

  1. void c**dlg::ONMouseMove(UINT nFlags, CPoint point)
  2. {
  3. if(isMouseDown == true)
  4. {
  5. int Dx = point.x - startPoint.x;
  6. int Dy = point.y - startPoint.y;
  7. startRect.left += Dx;
  8. startRect.right += Dx;
  9. startRect.top +=Dy;
  10. startRect.bottom +=Dy; //获取新的位置
  11. this->MoveWindow(&startRect); //将窗口移到新的位置
  12. }
  13. CDialog::OnMouseMove(nFlags, point);
  14. }

当释放鼠标时不再拖动窗口,所以要添加OnLButtonUp消息响应函数

  1. void c**dlg::OnLButtonUp(UINT nFlags, CPoint point)
  2. {
  3. isMouseDown = false;
  4. //CDialog::OnLButtonUp(nFlags,Point);
  5. }


 


 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/144227
推荐阅读
相关标签
  

闽ICP备14008679号