比如:要判断鼠标是不是在一个对话框的某个EDIT内,要怎么办?

解决方案 »

  1.   

    函数不外乎下面几个GetClientRect( LPRECT lpRect )
    GetWindowRect( LPRECT lpRect )
    ClientToScreen( LPPOINT lpPoint )
    ScreenToClient( LPPOINT lpPoint )CRect::PtInRect( POINT point )关键看你的具体情况来用!
      

  2.   

    不对,我试过了。
    我在MOUSEMOVE中测试过
    GetWindowRect(RECT)取得的是SCREEN坐标,POINT是CLIENT坐标,但是把RECT转换成CLIENT一样仍然不对。是为什么?
      

  3.   

    POINT pt;
    RECT rect;
    ::GetWindowRect(::GetDlgItem(IDC_EDIT), &rect);
    ::GetCursorPos(&pt);
    if(::PtInRect(&rect, pt)) //如果在框内
    ...........
    你的操作
    ...........
      

  4.   

    那你就用GetClientRect()试试啊!
      

  5.   

    当然,如果你是在MOUSEMOVE中处理,那么CPoint point是已有的。可以先GetWindowRect,然后ScreenToClient转化一下然后再用PtInRect判断
      

  6.   

    偶已经搞定了,不是用的上面的方法,其实本来处理的时候就有问题。因为消息是发给CEDIT的,所以只要派生一个CEDIT的类来处理就很轻松了(直接重载CMYSTATIC的ONMOUSEMOVE很简单就搞定了)唉可惜早点没想到啊。放分了放分。