对话框中有一个webBrowser控件,怎样判定鼠标点击的位置是否落在webBrowser控件内?也就是说:我获得鼠标点击的坐标,然后怎样判断该位置是不是在webBrowser控件内?

解决方案 »

  1.   

    如楼上先用GetWinodwRect取得控件本身的区域 再用PtInRect判断鼠标点击是否在该区域内
      

  2.   

    getwindowrect得到得是屏幕坐标
    screentoclient转化为客户区坐标
    然后ptinrect
      

  3.   

    CPoint pntCursor;
        if ( GetCursorPos( &pntCursor ))
        {
            if ( this == WindowFromPoint( pntCursor ))
            {
               ...
            }
        }
      

  4.   

    to adorelife
    谢谢你,我还有一点不明白this代表什么?
      

  5.   

    WindowFromPoint这个函数就行了,它获得鼠所在的一个窗口句柄,你判断这个句柄是不是你自已的窗口就行了。CRect::PtInRect也可以判断,是否在一个矩形区域
      

  6.   

    我编写了一个鼠标钩子函数,当鼠标点击时捕获鼠标的位置,看看是不是在控件区域内,如果在就设置一个标识,钩子函数生成了.dll文件,我感觉这段代码应该写在鼠标钩子函数里面,但是在.dll文件中怎样获得控件的句柄?
    CPoint pntCursor;
    if ( GetCursorPos( &pntCursor ))
    {
    if ( this == WindowFromPoint( pntCursor ))
    {
       int flag = 1;
    }
    }
      

  7.   

    还是那句话,用WindowFromPoint获得
      

  8.   

    不有人说过了吗,用控件自身的消息.
    把控件属性中的"Notify"勾上,
    然后在PreTranslateMessage中
    if(pMsg->hwnd==GetDlgIte(IDC_WEBBROWER1)->m_hWnd)
    ......