none
对话框窗口随鼠标移动的问题 RRS feed

  • 问题

  • void CDlgLogin::OnMouseMove(UINT nFlags, CPoint point)
    {
      if(MK_LBUTTON == nFlags)
      {
        CPoint newPoint = point;
        ClientToScreen(&newPoint);
        int x = newPoint.x - m_oldPoint.x;
        int y = newPoint.y - m_oldPoint.y;
        CRect rect;
        GetWindowRect(&rect);
        rect.left += x;
        rect.top += y;
        SetWindowPos(NULL, rect.left, rect.top, 0, 0, SWP_NOSIZE);
      }
    
      CDialog::OnMouseMove(nFlags, point);
    }
    
    void CDlgLogin::OnLButtonDown(UINT nFlags, CPoint point)
    {
      m_oldPoint = point;
      ClientToScreen(&m_oldPoint);
    
      CDialog::OnLButtonDown(nFlags, point);
    }
    
    

    结果窗口比鼠标移动速度要快的多,不知道是哪里错了。
    我是快乐的小鱼^_^
    2011年8月3日 9:06

答案

全部回复

  • // 添加WM_NCHITTEST消息响应
    
    UINT CXXXDlg::OnNcHitTest(CPoint point) 
    {
     // TODO: Add your message handler code here and/or call default
     UINT nRet = CDialog::OnNcHitTest(point);
     return HTCLIENT == nRet ? HTCAPTION : nRet;
    }
    2011年8月4日 0:09
    版主
  • void CDlgLogin::OnLButtonDown(UINT nFlags, CPoint point) 
    
    {
    
    	// TODO: Add your message handler code here and/or call default
    
    	m_oldPoint = point;
    
    //	ClientToScreen(&m_oldPoint);
    
    
    
    	CDialog::OnLButtonDown(nFlags, point);
    
    }
    
    
    
    void CDlgLogin::OnMouseMove(UINT nFlags, CPoint point) 
    
    {
    
    	// TODO: Add your message handler code here and/or call default
    
    	if(MK_LBUTTON == nFlags)
    
    	{
    
    		CPoint newPoint = point;
    
    		//ClientToScreen(&newPoint);
    
    		int x = newPoint.x - m_oldPoint.x;
    
    		int y = newPoint.y - m_oldPoint.y;
    
    		CRect rect;
    
    		GetWindowRect(&rect);
    
    		rect.left += x;
    
    		rect.top += y;
    
    		SetWindowPos(NULL, rect.left, rect.top, 0, 0, SWP_NOSIZE);
    
    	}
    
    
    
    	CDialog::OnMouseMove(nFlags, point);
    
    }
    
    

     


    把您上面两个函数中的ClientToScreen()的调用给注释掉。

    2011年8月4日 0:13
    版主
  • 问题我昨天已经自行解决,感谢答复。
    我是快乐的小鱼^_^
    2011年8月4日 5:19
  • 谢谢,代码很完整,还好用哦
    2012年12月19日 1:50