0

鼠标移动时有没有发现控制鼠标在上面?我的意思是,如果您有一个带有一些标签和文本框的对话框,并且鼠标移动到标签,请通知我该标签名称,然后如果将其移动到文本框,请通知文本框名称。

4

2 回答 2

1

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

于 2013-11-12T13:34:21.270 回答
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);
}
于 2019-01-01T07:22:28.947 回答