マウス入力

このセクションでは、システムがアプリケーションにマウス入力を提供する方法と、アプリケーションがその入力を受け取って処理する方法について説明します。

このセクションの内容

トピック 説明
マウス入力について
このトピックでは、マウス入力について説明します。
マウス入力の使用
このセクションでは、マウス入力に関連するタスクについて説明します。
マウス入力リファレンス

関数

Name Description
_TrackMouseEvent マウス ポインターがウィンドウを離れるか、指定した時間だけウィンドウの上にマウス ポインターを置いたときにメッセージを投稿します。 この関数は、存在する場合 は TrackMouseEvent を呼び出し、それ以外の場合はエミュレートします。
BlockInput キーボードとマウスの入力イベントがアプリケーションに到達するのをブロックします。
DragDetect マウスをキャプチャし、ユーザーが左ボタンを離すか、Esc キーを押すか、または指定した点を中心にしたドラッグ四角形の外にマウスを移動するまで、移動を追跡します。 ドラッグ四角形の幅と高さは、GetSystemMetrics 関数によって返されるSM_CXDRAG値とSM_CYDRAG値によって指定されます。
EnableMouseInPointer マウスをポインティング デバイスとして機能できるようにします。
EnableWindow 指定したウィンドウまたはコントロールへのマウスとキーボードの入力を有効または無効にします。 入力を無効にすると、マウスのクリックやキーの押下などの入力がウィンドウに表示されません。 入力が有効になっている場合、ウィンドウはすべての入力を受け取ります。
GetCapture マウスをキャプチャしたウィンドウへのハンドル (存在する場合) を取得します。 マウスをキャプチャできるウィンドウは一度に 1 つだけです。このウィンドウは、カーソルが境界線内にあるかどうかに関係なく、マウス入力を受け取ります。
GetDoubleClickTime マウスの現在のダブルクリック時間を取得します。 ダブルクリックとは、マウス ボタンの 2 回のクリックの連続であり、2 つ目は最初のボタンの後の指定された時間内に発生します。 ダブルクリック時間は、ダブルクリックの 1 回目と 2 回目のクリックの間に発生する可能性がある最大ミリ秒数です。
GetMouseMovePointsEx マウスまたはペンの最大 64 個の以前の座標の履歴を取得します。
IsWindowEnabled 指定したウィンドウがマウスとキーボードの入力に対して有効になっているかどうかを判断します。
ReleaseCapture 現在のスレッドのウィンドウからマウス キャプチャを解放し、通常のマウス入力処理を復元します。 マウスをキャプチャしたウィンドウは、カーソルの位置に関係なく、すべてのマウス入力を受け取ります。ただし、カーソルのホット スポットが別のスレッドのウィンドウにある間にマウス ボタンがクリックされた場合を除きます。
SendInput キーストローク、マウスの動き、ボタンクリックを合成します。
SetCapture マウス キャプチャを、現在のスレッドに属する指定されたウィンドウに設定します。 SetCapture は、マウスがキャプチャ ウィンドウの上にある場合、またはマウスがキャプチャ ウィンドウの上にあり、ボタンがまだダウンしている間にマウス ボタンが押されたときに、マウス入力をキャプチャします。 マウスをキャプチャできるウィンドウは一度に 1 つだけです。
別のスレッドによって作成されたウィンドウの上にマウス カーソルがある場合、マウス ボタンがダウンしている場合にのみ、マウス入力が指定されたウィンドウに送られます。
SetDoubleClickTime マウスのダブルクリック時間を設定します。 ダブルクリックとは、一連の 2 回のマウス ボタンのクリックであり、2 つ目は最初のボタンの後の指定された時間内に発生します。 ダブルクリック時間は、ダブルクリックの 1 回目と 2 回目のクリックの間に発生する可能性がある最大ミリ秒数です。
SwapMouseButton マウスの左右のボタンの意味を反転または復元します。
TrackMouseEvent マウス ポインターがウィンドウを離れるか、指定した時間だけウィンドウの上にマウス ポインターを置いたときにメッセージを投稿します。

次の関数は廃止されました。

機能 Description
mouse_event マウスの動きとボタンのクリックを合成します。

通知

名前 Description
WM_APPCOMMAND ユーザーがアプリケーション コマンド イベントを生成したことをウィンドウに通知します。たとえば、マウスを使用してアプリケーション コマンド ボタンをクリックするか、キーボードにアプリケーション コマンド キーを入力します。
WM_CAPTURECHANGED マウス キャプチャを失っているウィンドウに送信されます。
WM_LBUTTONDBLCLK カーソルがウィンドウのクライアント領域にあるときに、ユーザーがマウスの左ボタンをダブルクリックしたときに投稿されます。 マウスがキャプチャされない場合、メッセージはカーソルの下のウィンドウに投稿されます。 それ以外の場合は、マウスをキャプチャしたウィンドウにメッセージが投稿されます。
WM_LBUTTONDOWN ユーザーがマウスの左ボタンを押したときに、カーソルがウィンドウのクライアント領域にあるときに投稿されます。 マウスがキャプチャされない場合、メッセージはカーソルの下のウィンドウに投稿されます。 それ以外の場合は、マウスをキャプチャしたウィンドウにメッセージが投稿されます。
WM_LBUTTONUP カーソルがウィンドウのクライアント領域にあるときに、ユーザーがマウスの左ボタンを離したときに投稿されます。 マウスがキャプチャされない場合、メッセージはカーソルの下のウィンドウに投稿されます。 それ以外の場合は、マウスをキャプチャしたウィンドウにメッセージが投稿されます。
WM_MBUTTONDBLCLK ユーザーがマウスの中央ボタンをダブルクリックしたときに、カーソルがウィンドウのクライアント領域にあるときに投稿されます。 マウスがキャプチャされない場合、メッセージはカーソルの下のウィンドウに投稿されます。 それ以外の場合は、マウスをキャプチャしたウィンドウにメッセージが投稿されます。
WM_MBUTTONDOWN ユーザーがマウスの中央ボタンを押したときに、カーソルがウィンドウのクライアント領域にあるときに投稿されます。 マウスがキャプチャされない場合、メッセージはカーソルの下のウィンドウに投稿されます。 それ以外の場合は、マウスをキャプチャしたウィンドウにメッセージが投稿されます。
WM_MBUTTONUP カーソルがウィンドウのクライアント領域にあるときに、ユーザーがマウスの中央ボタンを離したときに投稿されます。 マウスがキャプチャされない場合、メッセージはカーソルの下のウィンドウに投稿されます。 それ以外の場合は、マウスをキャプチャしたウィンドウにメッセージが投稿されます。
WM_MOUSEACTIVATE カーソルが非アクティブなウィンドウにあり、ユーザーがマウス ボタンを押したときに送信されます。 親ウィンドウは、子ウィンドウが DefWindowProc 関数に渡す場合にのみ、このメッセージを受け取ります。
WM_MOUSEHOVER TrackMouseEvent の以前の呼び出しで指定された期間、ウィンドウのクライアント領域にカーソルが置かれたときにウィンドウにポストされます。
WM_MOUSEHWHEEL マウスの水平スクロール ホイールが傾いているか回転したときにフォーカス ウィンドウに送信されます。 DefWindowProc関数は、メッセージをウィンドウの親に伝達します。 メッセージを処理するウィンドウが見つかるまで、 DefWindowProc によって親チェーンに伝達されるため、メッセージの内部転送は行われません。
WM_MOUSELEAVE TrackMouseEvent の以前の呼び出しで指定されたウィンドウのクライアント領域からカーソルが離れると、ウィンドウにポストされます。
Wm_mousemove カーソルが移動したときにウィンドウにポストされます。 マウスがキャプチャされない場合、メッセージはカーソルを含むウィンドウにポストされます。 それ以外の場合、メッセージはマウスをキャプチャしたウィンドウに投稿されます。
WM_MOUSEWHEEL マウス ホイールが回転したときにフォーカス ウィンドウに送信されます。 DefWindowProc 関数は、メッセージをウィンドウの親に伝達します。 メッセージを処理するウィンドウが見つかるまで、 DefWindowProc によって親チェーンに伝達されるため、メッセージの内部転送は行われません。
WM_NCHITTEST 特定の画面座標に対応するウィンドウの部分を決定するために、ウィンドウに送信されます。 これは、たとえば、カーソルが移動したとき、マウス ボタンが押されたり離されたりしたとき、 または WindowFromPoint などの関数の呼び出しに応答して発生する可能性があります。 マウスがキャプチャされない場合は、カーソルの下のウィンドウにメッセージが送信されます。 それ以外の場合は、マウスをキャプチャしたウィンドウにメッセージが送信されます。
WM_NCLBUTTONDBLCLK カーソルがウィンドウの非クライアント領域内にあるときに、ユーザーがマウスの左ボタンをダブルクリックしたときに投稿されます。 このメッセージは、カーソルを含むウィンドウに投稿されます。 ウィンドウがマウスをキャプチャした場合、このメッセージは投稿されません。
WM_NCLBUTTONDOWN カーソルがウィンドウの非クライアント領域内にあるときに、ユーザーがマウスの左ボタンを押したときに投稿されます。 このメッセージは、カーソルを含むウィンドウに投稿されます。 ウィンドウがマウスをキャプチャした場合、このメッセージは投稿されません。
WM_NCLBUTTONUP カーソルがウィンドウの非クライアント領域内にあるときに、ユーザーがマウスの左ボタンを離したときに投稿されます。 このメッセージは、カーソルを含むウィンドウに投稿されます。 ウィンドウがマウスをキャプチャした場合、このメッセージは投稿されません。
WM_NCMBUTTONDBLCLK カーソルがウィンドウの非クライアント領域内にあるときに、ユーザーがマウスの中央ボタンをダブルクリックしたときに投稿されます。 このメッセージは、カーソルを含むウィンドウに投稿されます。 ウィンドウがマウスをキャプチャした場合、このメッセージは投稿されません。
WM_NCMBUTTONDOWN カーソルがウィンドウの非クライアント領域内にあるときに、ユーザーがマウスの中央ボタンを押したときに投稿されます。 このメッセージは、カーソルを含むウィンドウに投稿されます。 ウィンドウがマウスをキャプチャした場合、このメッセージは投稿されません。
WM_NCMBUTTONUP カーソルがウィンドウの非クライアント領域内にあるときに、ユーザーがマウスの中央ボタンを離したときに投稿されます。 このメッセージは、カーソルを含むウィンドウに投稿されます。 ウィンドウがマウスをキャプチャした場合、このメッセージは投稿されません。
WM_NCMOUSEHOVER TrackMouseEvent の以前の呼び出しで指定された期間、ウィンドウの非クライアント領域にカーソルが置かれたときにウィンドウにポストされます。
WM_NCMOUSELEAVE TrackMouseEvent の以前の呼び出しで指定されたウィンドウの非クライアント領域からカーソルが離れると、ウィンドウにポストされます。
WM_NCMOUSEMOVE ウィンドウの非クライアント領域内でカーソルが移動されると、ウィンドウにポストされます。 このメッセージは、カーソルを含むウィンドウに投稿されます。 ウィンドウがマウスをキャプチャした場合、このメッセージは投稿されません。
WM_NCRBUTTONDBLCLK カーソルがウィンドウの非クライアント領域内にあるときに、ユーザーがマウスの右ボタンをダブルクリックしたときに投稿されます。 このメッセージは、カーソルを含むウィンドウに投稿されます。 ウィンドウがマウスをキャプチャした場合、このメッセージは投稿されません。
WM_NCRBUTTONDOWN カーソルがウィンドウの非クライアント領域内にあるときにユーザーがマウスの右ボタンを押したときに投稿されます。 このメッセージは、カーソルを含むウィンドウに投稿されます。 ウィンドウがマウスをキャプチャした場合、このメッセージは投稿されません。
WM_NCRBUTTONUP カーソルがウィンドウの非クライアント領域内にあるときに、ユーザーがマウスの右ボタンを離したときに投稿されます。 このメッセージは、カーソルを含むウィンドウに投稿されます。 ウィンドウがマウスをキャプチャした場合、このメッセージは投稿されません。
WM_NCXBUTTONDBLCLK カーソルがウィンドウの非クライアント領域にあるときに、ユーザーが 1 番目または 2 番目の X ボタンをダブルクリックしたときに投稿されます。 このメッセージは、カーソルを含むウィンドウに投稿されます。 ウィンドウがマウスをキャプチャした場合、このメッセージは投稿されません。
WM_NCXBUTTONDOWN カーソルがウィンドウの非クライアント領域にあるときに、ユーザーが 1 番目または 2 番目の X ボタンを押したときに投稿されます。 このメッセージは、カーソルを含むウィンドウに投稿されます。 ウィンドウがマウスをキャプチャした場合、このメッセージは投稿されません。
WM_NCXBUTTONUP カーソルがウィンドウの非クライアント領域にあるときに、ユーザーが 1 番目または 2 番目の X ボタンを離したときに投稿されます。 このメッセージは、カーソルを含むウィンドウに投稿されます。 ウィンドウがマウスをキャプチャした場合、このメッセージは投稿されません。
WM_RBUTTONDBLCLK カーソルがウィンドウのクライアント領域にあるときに、ユーザーがマウスの右ボタンをダブルクリックしたときに投稿されます。 マウスがキャプチャされない場合、メッセージはカーソルの下のウィンドウにポストされます。 それ以外の場合、メッセージはマウスをキャプチャしたウィンドウに投稿されます。
WM_RBUTTONDOWN カーソルがウィンドウのクライアント領域にあるときにユーザーがマウスの右ボタンを押したときに投稿されます。 マウスがキャプチャされない場合、メッセージはカーソルの下のウィンドウにポストされます。 それ以外の場合、メッセージはマウスをキャプチャしたウィンドウに投稿されます。
WM_RBUTTONUP カーソルがウィンドウのクライアント領域にあるときに、ユーザーがマウスの右ボタンを離したときに投稿されます。 マウスがキャプチャされない場合、メッセージはカーソルの下のウィンドウにポストされます。 それ以外の場合、メッセージはマウスをキャプチャしたウィンドウに投稿されます。
WM_XBUTTONDBLCLK カーソルがウィンドウのクライアント領域にあるときに、ユーザーが 1 番目または 2 番目の X ボタンをダブルクリックしたときに投稿されます。 マウスがキャプチャされない場合、メッセージはカーソルの下のウィンドウにポストされます。 それ以外の場合、メッセージはマウスをキャプチャしたウィンドウに投稿されます。
WM_XBUTTONDOWN カーソルがウィンドウのクライアント領域にあるときに、ユーザーが 1 番目または 2 番目の X ボタンを押したときに投稿されます。 マウスがキャプチャされない場合、メッセージはカーソルの下のウィンドウにポストされます。 それ以外の場合、メッセージはマウスをキャプチャしたウィンドウに投稿されます。
WM_XBUTTONUP カーソルがウィンドウのクライアント領域にあるときに、ユーザーが 1 番目または 2 番目の X ボタンを離したときに投稿されます。 マウスがキャプチャされない場合、メッセージはカーソルの下のウィンドウにポストされます。 それ以外の場合は、マウスをキャプチャしたウィンドウにメッセージが投稿されます。

構造

Name Description
HARDWAREINPUT キーボードまたはマウス以外の入力デバイスによって生成されたシミュレートされたメッセージに関する情報が含まれます。
入力 キーストローク、マウスの動き、マウスクリックなどの入力イベントを合成するために使用される情報が含まれます。
LASTINPUTINFO 最後の入力の時刻を格納します。
MOUSEINPUT シミュレートされたマウス イベントに関する情報が含まれます。
MOUSEMOVEPOINT マウスの位置に関する情報を画面座標に格納します。
TRACKMOUSEEVENT TrackMouseEvent 関数によって使用され、マウス ポインターがウィンドウを離れるか、指定した時間だけウィンドウの上にマウス ポインターを置いたときに追跡されます。