在FormView视图中,有一个控件CStatic,在CStatic上画一个矩形框,如何判断在屏幕上按鼠标时,是否落在这个矩形区域内,我用了各位方法,每次得到的鼠标值都落在了框外面,其它点击时是在框内的。我想应该是矩形坐标是以CStatic为标准的,而鼠标是以整个视图为标准的,如何能调整这个坐标?谢谢。

解决方案 »

  1.   

    先调用static.GetWindowRect( &rect );之后再调用View::ScreenToClient( &rect );就能得到static相对view客户区的位置了
      

  2.   

    搞定了,我用ClientToScreen给解决了。
      

  3.   

    void shader::OnMouseMove(UINT nFlags, CPoint point) 
    {
    // TODO: Add your message handler code here and/or call default

    CRect pin;
    GetDlgItem(IDC_YOURID)->GetWindowRect(&pin);



    ScreenToClient(&pin);  
    if(pin.PtInRect(point)) 
    {
                  //DO STH
            }......}