从网上找来的资料
说用TRACKMOUSEEVENT还有MouseLeave来响应鼠标离开窗口的消息
但是不管用,用SetCapture();总是有副作用
不知道该怎么办了OnMouseMove的代码:
 TRACKMOUSEEVENT tme;
        tme.cbSize = sizeof(tme);
        tme.hwndTrack = m_hWnd;
        tme.dwFlags = TME_LEAVE|TME_HOVER;
        tme.dwHoverTime = 1;
        MouseActive = _TrackMouseEvent(&tme); OnMouseLeave:
AfxMessageBox(L"te");我的_WIN_预定义宏都是0x0600

解决方案 »

  1.   

    CClientDC dc(this);          //获取视图客户区的DC
    加在OnMouseMove第一行试试
      

  2.   

    不清楚你的代码中怎么写的
    WM_MOUSEHOVER消息处理以后,需要再次调用_TrackMouseEvent
      

  3.   

    定义一个标记变量:bool is_mouse_in = false;if(is_mouse_in == false)
    {
      is_mouse_in = true;
      TRACKMOUSEEVENT tme;
      tme.cbSize = sizeof(tme);
      tme.hwndTrack = m_hWnd;
      tme.dwFlags = TME_LEAVE;
      tme.dwHoverTime = 50;
      MouseActive = _TrackMouseEvent(&tme);
      PostMessage(WM_MOUSEHOVER);
    }通常是这么写的。
      

  4.   

    MouseActive就是一个标记,我已经有了,