現在、ウィンドウをフォーカスせずにスクロールできるアプリケーションを作成しています。私が行ったこと: LowLevelMouseHookを作成しました。LowLevelMouseProc が MouseWheel メッセージを受信した場合、カーソル位置のハンドルを検索し、そのハンドルにスクロール メッセージを送信します。フックは次のようになります。
LRESULT CALLBACK MouseHookCallback(int code, WPARAM wparam, LPARAM lparam)
{
if(code < 0)
return CallNextHookEx(mouseHookInstance, code, wparam, lparam);
if(UserMouseHookCallback != NULL)
{
UserMouseHookCallback(code, wparam, lparam);//scroll the hovered window here
if(wparam == WM_MOUSEWHEEL)
return -1;
}
return CallNextHookEx(mouseHookInstance, code, wparam, lparam);
}
ご覧のとおり、メッセージがマウスホイール メッセージの場合は -1 を返します。これにより、現在フォーカスされているウィンドウのスクロールを回避する必要があります(フォーカスされたウィンドウをスクロールしたくない、カーソルが置かれているウィンドウをスクロールしたい)。問題は、フォーカスされたウィンドウのスクロールをキャンセルしないことです。現在フォーカスされているウィンドウをスクロールしないようにする方法を知っている人はいますか? 現在、スクロールされているウィンドウが 2 つあります。マウスがホバーしているものとフォーカスされているもの。
私の質問に反対票を投じないで、チャンスをください。私は本当に最善を尽くしていますが、解決策を見つけることができません。