当鼠标在CWnd上移动时有一个消息函数OnMouseMove()能获取鼠标的移动信息,但是如何才能捕获到鼠标离开此CWnd的一刹那的消息呢?
   请各位高手赐教,谢谢!

解决方案 »

  1.   

    SetCapture
    在OnMouseMove裡判斷鼠標位置是不是當然窗體
      

  2.   

    setcapture,
    或者timer里面检测鼠标位置.
    所有的vc源码站点都能找到一大堆.
      

  3.   

    自己写,没现成的消息SetCapture截获所有鼠标消息,再用鼠标当前位置和窗口RECT比较,看是离开本窗口
      

  4.   

    應該是這個才對:
    CWnd::OnMouseMove
      

  5.   

    get your mouse point in your OnMouseMove function and your rect size of window.
    then see if the point is in the rect with fucntion:
    BOOL PtInRect(
    const RECT *lprc, 
    POINT pt);
      

  6.   

    WM_MOUSELEAVEON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave)
    afx_msg LRESULT OnMouseLeave(WPARAM wParam, LPARAM lParam);
      

  7.   

    WM_MOUSELEAVE 每次使用 WM_MOUSELEAVE 需要先调用 _TrackMouseEventTRACKMOUSEEVENT tme = {
        sizeof(TRACKMOUSEEVENT),
        TME_LEAVE,
        m_hWnd,
        0 };_TrackMouseEvent(&tme);
      

  8.   

    回复人: COOL099(Alan Zjou) ( ) 信誉:100  2003-04-14 15:54:00  得分:0 
     
     
      WM_MOUSELEAVEON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave)
    afx_msg LRESULT OnMouseLeave(WPARAM wParam, LPARAM lParam);  
     
    Top 
     
     回复人: In355Hz(好象一条狗) ( ) 信誉:110  2003-04-14 16:16:00  得分:0 
     
     
      WM_MOUSELEAVE 每次使用 WM_MOUSELEAVE 需要先调用 _TrackMouseEventTRACKMOUSEEVENT tme = {
        sizeof(TRACKMOUSEEVENT),
        TME_LEAVE,
        m_hWnd,
        0 };_TrackMouseEvent(&tme);
      
     
    Top