0

とにかく、マウスを動かしてコントロールマウスがその上にあるのを見つけたときはありますか? いくつかのラベルとテキスト ボックスを含むダイアログがあり、マウスがラベルに移動した場合は、そのラベル名を通知し、テキスト ボックスに移動した場合はテキスト ボックス名を通知します。

4

2 に答える 2

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 に答える