私は、マウスクリックやマウスダブルクリックなどのイベントを提供するWindowsフレームワークでの作業に慣れています。クリックイベントはWindowsで構成されていますか(つまり、WindowsはWM_DOUBLECLICKまたは同様のメッセージを送信しますか)、それともアプリケーションにWM_MOUSEDOWNとWM_MOUSEUPを送信し、アプリケーションはイベントがクリックかどうかを判断するために計算を行いますか?
3 に答える
MSDNのドキュメントによると、ダブルクリックイベントで表示されるメッセージの正しい順序は、WM_LBUTTONDOWN、WM_LBUTTONUP、WM_LBUTTONDBLCLK、およびWM_LBUTTONUPです。
これは、WindowProc()を介して送信されるメッセージの組み合わせです。メッセージは、マウスの左ボタンの場合はWM_LBUTTONDOWN、WM_LBUTTONDBLCLK、WM_LBUTTONUP、中央のボタンの場合はWM_MBUTTONDOWNなど、マウスの右ボタンの場合はWM_RBUTTONDOWNなどです。詳細については、MSDNのWindowsSDKを参照してください。
マウスクリックはWindowsメッセージの組み合わせではありませんが、クリックされるアプリケーションによっては、それにつながる可能性があります。MSDNで説明されているように、Windows入力とWindowsメッセージは、さまざまな方法で使用される一部のアプリケーション用のツールにすぎないため、大きな違いがあります。
I also provided an example that shows the difference clearly in my question How could it work to use multiple cursors on one Windows client? It shows what messages are sent by clicking and that windows messages are often not enough to emulate a mouse click, but if they are, how they can be used.