如果建了一个dialog,在这个对话框中又新建了几个对象,怎样才能使鼠标移到其中一个对象时产生响应?

解决方案 »

  1.   

    类似下面的,好象还有点问题,自己调试一下BOOL CKkkDlg::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    POINT  ptMouse;
    CRect   rcList; if(pMsg->message == WM_MOUSEMOVE)
    {
    ptMouse.x = LOWORD(pMsg->lParam);
    ptMouse.y = HIWORD(pMsg->lParam);
    GetDlgItem(IDC_LIST)->GetWindowRect(&rcList);
    ScreenToClient(&rcList);
    ptMouse.x += rcList.left;
    ptMouse.y += rcList.top; if(rcList.PtInRect(ptMouse))
    MessageBox("OK");
    } return CDialog::PreTranslateMessage(pMsg);
    }
      

  2.   

    你的对象指的是控件吗?如果是的话,可以响应控件的鼠标消息WM_MOUSEHOVER。这个消息在Class wizard中是看不到的,需要手动添加。
      

  3.   

    LinHanLao(凌寒) 的方法我已经测试成功,谢了!!^_^
      

  4.   

    使用OnMouseMove()判断鼠标位置这个方法是可以,但是并不是很好,如果鼠标在控件移动就会产生很多个这样的判断,所以,我个人认为如果只是想得到鼠标进入控件范围的话还是使用WM_MOUSEHOVER消息比较好。