画图的时候,鼠标拖离客户区怎么办呢?比如我现在是画线,我鼠标按下了在拖,但是拖离到画图区域以外,此时我再松开鼠标,那么画线没有完成,鼠标也松开了,线还是在上面。我是判断鼠标松开就画图上去的,但是现在这样明显不行。哪位帮帮?

解决方案 »

  1.   

    为什么要锁定鼠标?第二点在客户区以外当然就不应该画线。画出来才是一种奇怪的行为。
    ::ClipCursor 限制鼠标区域
      

  2.   

    鼠标拖离客户区以后我就没有办法判断鼠标松开,onlbuttonUp ,我是在鼠标按下的时候得到起始点,鼠标松开的时候得到结束点的,现在鼠标在客户区以外了,就没有办法得到结束点。还有就是我在onmousemove的时候画线出来了,出了客户区松开鼠标的时候原来画的线因为没有办法判断鼠标松开点所以程序就出错了。
      

  3.   

    在鼠标按下时SetCapture()即可,这样,即使鼠标被拖出窗口孙松开,也能收到MouseMove和MouseUp消息,在MouseUp中ReleaseCapture()
      

  4.   

    clientrect
    void CSprectrumGraph::OnMouseMove(UINT nFlags, CPoint point) 
    {
    // To deal with the current cursor of the mouse
    if(clientrect.PtInRect(point))
    {
    SetCursor(hCursor[m_nIndexofCursor]);
    }
    }
      

  5.   

    用SetCapture和::ReleaseCapture可以解决你的问题,我也遇到过!