電子書籍の厳選無料作品が豊富!

WM_MOUSEWHEELをフォーカスが別ウィンドウの時でも検出したい!

現在VC++2005でWINAPIベースでマウス操作を取得するプログラムを作っています。
ホイール操作やマウスの左右クリックを検出しようとしていますが、
しかしWinAPIではWM_MOUSEWHEELに限らずマウスのクリックとかホイール操作を検出するには
フォーカスがそのプログラムのウィンドウにないとダメでした。

私のプログラムではフォーカスがそのウィンドウにない時でも取得したいのですが、
そのようなことを行うことは可能なのでしょうか?

A 回答 (1件)

 こんにちは。



 一番簡単なのが、WH_MOUSE_LLのローレベルマウスフックです。
 http://msdn.microsoft.com/ja-jp/library/cc430103 …

 WH_MOUSE_LL/WH_KEYBOARD_LLについては、DLLも不要です。

 それ以外であるならば、面倒ではありますが、DirectInputです。
 http://msdn.microsoft.com/ja-jp/library/cc351732 …

 強調レベルはDISCL_NONEXCLUSIVE | DISCL_BACKGROUNDで行います。
 http://msdn.microsoft.com/ja-jp/library/cc351722 …

 プログラムがコケた時、ローレベルマウスフックではフックがかかりっぱなしになって危険なのでWindowsの再起動が必要ですが、DirectInputの方はその様な問題がありません。
    • good
    • 0
この回答へのお礼

そういえばDirectXにそんな機能がありましたね!
フラグ名も関数名ももはや完全に失念しており、とても助かりました!

フック関数も便利そうなのでいずれ使わせていただきます!

お礼日時:2010/01/23 15:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!