- ベストアンサー
WM_MOUSEWHEELをフォーカスが別ウィンドウの時でも検出したい
WM_MOUSEWHEELをフォーカスが別ウィンドウの時でも検出したい! 現在VC++2005でWINAPIベースでマウス操作を取得するプログラムを作っています。 ホイール操作やマウスの左右クリックを検出しようとしていますが、 しかしWinAPIではWM_MOUSEWHEELに限らずマウスのクリックとかホイール操作を検出するには フォーカスがそのプログラムのウィンドウにないとダメでした。 私のプログラムではフォーカスがそのウィンドウにない時でも取得したいのですが、 そのようなことを行うことは可能なのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 一番簡単なのが、WH_MOUSE_LLのローレベルマウスフックです。 http://msdn.microsoft.com/ja-jp/library/cc430103.aspx WH_MOUSE_LL/WH_KEYBOARD_LLについては、DLLも不要です。 それ以外であるならば、面倒ではありますが、DirectInputです。 http://msdn.microsoft.com/ja-jp/library/cc351732.aspx 強調レベルはDISCL_NONEXCLUSIVE | DISCL_BACKGROUNDで行います。 http://msdn.microsoft.com/ja-jp/library/cc351722.aspx プログラムがコケた時、ローレベルマウスフックではフックがかかりっぱなしになって危険なのでWindowsの再起動が必要ですが、DirectInputの方はその様な問題がありません。
お礼
そういえばDirectXにそんな機能がありましたね! フラグ名も関数名ももはや完全に失念しており、とても助かりました! フック関数も便利そうなのでいずれ使わせていただきます!