質問: 現在、C++でマウスのクリックを検知するプログラムを作っております。 現在は、https://vcpptips.wordpress.com/tag/vk_rbutton/を参考にして VK_LBUTTONやVK_RBUTTONが押されたかどうかによってクリック検知するようにしているのですが、 この方法では「非アクティブなウィンドウをクリックし、アクティブに切り替える」場合のクリックの検知ができません。(ウィンドウAがアクティブなときにウィンドウBをクリックしたときなど)。 そのような場合のクリックでも検出する方法ないでしょうか? よろしくお願いします。
回答: どういうことをするのか判らなかったため様子を見ていたのですが、お二人の回答へのコメントでだいたい判りました。 **GetKeyState**関数は関数呼び出し時点のキーやマウスボタンの状態を取得できますが、同様に**GetCursorPos**関数で呼び出し時点のマウスカーソル座標を取得できます。そして、**WindowFromPoint**関数で指定した座標位置にあるウィンドウのハンドルを所得できます。 これらを組み合わせて、一定間隔で取得した情報を記録するようなコードを書けば、リアルタイムにマウスボタンとマウスカーソルを追跡できます。 おまけ **SetCursorPos**関数と**SendInput**関数を組み合わせて、記録したマウス操作を再現することもできます。