0

カーソルの下の子ウィンドウでマウス ホイールをインターセプトしようとしています。しかし、何かが間違っています。メッセージが何度も送信されているようです。私は何を間違えましたか?

LRESULT CALLBACK MouseProc(__in  int     nCode,
                           __in  WPARAM  wParam,
                           __in  LPARAM  lParam)
{
    LRESULT      ret = 0;
    static  BOOL b   = TRUE;

    if (wParam == WM_MOUSEWHEEL)
    {
        if (b)
        {
            MOUSEHOOKSTRUCTEX *pMhs = (MOUSEHOOKSTRUCTEX *)lParam;
            short zDelta            = HIWORD(pMhs->mouseData);
            POINT pt;
            GetCursorPos(&pt);
            LPARAM lParam = MAKELPARAM(pt.x, pt.y);

            HWND hWnd = WindowFromPoint(pt);

            b = FALSE;
            SendMessage(hWnd, WM_MOUSEWHEEL, zDelta, lParam);
        }
        else
        {
            b = TRUE;
        }

        ret = 1;
    }
    else
    {
        CallNextHookEx(0, nCode, wParam, lParam);
    }

    return ret;
}
4

0 に答える 0