在MFC中找到哪个鼠标结束的控件

时间:2013-11-12 09:57:17

标签: c++ mfc

当鼠标移动时发现控制鼠标结束了吗?我的意思是,如果你有一个标签和文本框的对话框,鼠标移动到标签,通知我标签名称,之后如果移动到文本框通知文本框名称。

2 个答案:

答案 0 :(得分:1)

如果在对话框中处理WM_MOUSEMOVE,则可以抓住鼠标位置,将其转​​换为对话框坐标,并确定光标点下面的控件。

答案 1 :(得分:1)

经过研究,我找到了这段代码,该代码让我知道鼠标光标是否位于对话框中我的控件上。

//Handling mouse move in mfc dialog

void CDialogRoll::OnMouseMove(UINT nFlags, CPoint point)
{

    CRect rect1;

    m_FrameArea.GetClientRect(&rect1);    //control rectangle

    m_FrameArea.ClientToScreen(&rect1)
    ScreenToClient(&rect1);               //dialog coordinates`
    if (point.x >= rect1.left && point.x <= rect1.right && point.y >= rect1.top && 
          point.y <= rect1.bottom) {
        char str[100];
        sprintf(str, "%d-%d", point.x - rect1.left, point.y - rect1.top);

    }
    CDialogEx::OnMouseMove(nFlags, point);
}