我记得鼠标离开时窗口会收到一个消息吧。用不着SetCapture()的。

解决方案 »

  1.   

    SetCapture()的意思并不是那样的。它指的是当鼠标离开窗口后,该窗口仍接受鼠标消息。
    你不如使用::ClipCursor();
      

  2.   

    你的方法不行,在Win32中即使用了SetCapture鼠标离开窗口后也收不到鼠标消息用定时器吧,定期检查鼠标位置GetCursorPos
      

  3.   

    TO webber84(糕鱼昏):具体怎么做?
      

  4.   

    TO 2ndboy(丢丢):
    MSDN上不是说可以得到鼠标位置吗?我可以根据位置判断是否在窗口里你知道怎么做吗?
      

  5.   

    TO hnyyy(前进) :具体怎么做?
      

  6.   

    Flag = FALSE;在对话框的WM_MOUSEMOVE中
    if(Flag == FALSE)
    {
    SetTimer
    Flag = TRUE;
    }在WM_TIMER中
    GetCursorPos
    GetWindowRect
    判断鼠标是否在对话框中
    是的话不做处理
    不是的话KillTimer,Flag = FALSE
      

  7.   

    我觉得用ONMOUSEMOVE比较好,
    当MOUSE MOVE时,
    判断Mouse的坐标在不在对话框内。
      

  8.   

    是不是TrackMouseEvent在98下不能用?