有没有什么触发事件或者方法可以知道鼠标是否在客户区阿?
我现在要做的是当鼠标进出客户区的时候需要处理一些东西。(MFC初学者)谢谢!

解决方案 »

  1.   

    CRect::PtInRect( POINT point )
      

  2.   

    这个只是处理客户区里的mousemove吧,当在客户区外挪动鼠标的时候并不响应这个事件。我现在想要知道的是当鼠标出客户区还有进客户区的时候有没有消息可以接收,因为我需要在这两个时机处理一些东西,或者各位高手有没有什么其他方法可以解决这个问题。多谢了!
      

  3.   

    楼上所说的PtInRect应该也是mousemove的时候调吧,我现在做的是自己描画一个control,自己来判断是否在这个control的区域。
      

  4.   

    直接处理控件的WM_MOUSEMOVE就行,不用PtInRect
      

  5.   

    有一个办法是这样的,下面是逻辑:WM_MOUSEMOVE:
    if ( PtInRect( this ) )
    {
        if( GetCapture()!= this )
            SetCapture(this);
    }
    else
    {
        ReleaseCapture();
    }
    另一个方法是WM_MOUSEHOVER消息和WM_MOUSELEAVE消息请楼主自行查阅MSDN
    WM_MOUSEHOVER
      

  6.   

    怎么处理阿,不在control的区域的时候,mousemove是不响应的阿?那我怎么能够知道现在已经不在客户区了呢?能说详细一点吗?
      

  7.   

    setcapture之后,离开了也处理。多读读MSDN,英语不好就多学学英语。记得,英语和数学是学计算机的必修课