次の方法で共有


マウス入力

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

このセクションでは、次の操作を行います。

話題 形容
マウス入力 について
このトピックでは、マウス入力について説明します。
マウス入力 を使用した
このセクションでは、マウス入力に関連付けられているタスクについて説明します。
マウス入力リファレンス

関数

名前 形容
_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 つ目は最初のボタンの後の指定された時間内に発生します。 ダブルクリック時間は、ダブルクリックの最初と 2 回目のクリックの間に発生する可能性がある最大ミリ秒数です。
SwapMouseButton マウスの左右のボタンの意味を反転または復元します。
TrackMouseEvent マウス ポインターがウィンドウを離れるか、指定した時間ウィンドウの上にマウス ポインターを置いたときにメッセージを投稿します。

次の関数は廃止されています。

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

通知

名前 形容
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 カーソルがウィンドウの非クライアント領域にあるときに、ユーザーがXBUTTON1またはXBUTTON2をダブルクリックしたときに投稿されます。 このメッセージは、カーソルを含むウィンドウに投稿されます。 ウィンドウがマウスをキャプチャした場合、このメッセージは投稿されません。
WM_NCXBUTTONDOWN カーソルがウィンドウの非クライアント領域にあるときに、ユーザーがXBUTTON1またはXBUTTON2を押したときに投稿されます。 このメッセージは、カーソルを含むウィンドウに投稿されます。 ウィンドウがマウスをキャプチャした場合、このメッセージは投稿されません。
WM_NCXBUTTONUP カーソルがウィンドウの非クライアント領域にあるときに、ユーザーがXBUTTON1またはXBUTTON2を離したときにポストされます。 このメッセージは、カーソルを含むウィンドウに投稿されます。 ウィンドウがマウスをキャプチャした場合、このメッセージは投稿されません。
WM_RBUTTONDBLCLK カーソルがウィンドウのクライアント領域にあるときに、ユーザーがマウスの右ボタンをダブルクリックしたときに投稿されます。 マウスがキャプチャされていない場合、メッセージはカーソルの下のウィンドウに投稿されます。 それ以外の場合、メッセージは、マウスをキャプチャしたウィンドウに投稿されます。
WM_RBUTTONDOWN カーソルがウィンドウのクライアント領域にあるときに、ユーザーがマウスの右ボタンを押したときに投稿されます。 マウスがキャプチャされていない場合、メッセージはカーソルの下のウィンドウに投稿されます。 それ以外の場合、メッセージは、マウスをキャプチャしたウィンドウに投稿されます。
WM_RBUTTONUP カーソルがウィンドウのクライアント領域にあるときに、ユーザーがマウスの右ボタンを離したときに投稿されます。 マウスがキャプチャされていない場合、メッセージはカーソルの下のウィンドウに投稿されます。 それ以外の場合、メッセージは、マウスをキャプチャしたウィンドウに投稿されます。
WM_XBUTTONDBLCLK カーソルがウィンドウのクライアント領域にあるときに、ユーザーがXBUTTON1またはXBUTTON2をダブルクリックしたときに投稿されます。 マウスがキャプチャされていない場合、メッセージはカーソルの下のウィンドウに投稿されます。 それ以外の場合、メッセージは、マウスをキャプチャしたウィンドウに投稿されます。
WM_XBUTTONDOWN カーソルがウィンドウのクライアント領域にあるときに、ユーザーがXBUTTON1またはXBUTTON2を押したときに投稿されます。 マウスがキャプチャされていない場合、メッセージはカーソルの下のウィンドウに投稿されます。 それ以外の場合、メッセージは、マウスをキャプチャしたウィンドウに投稿されます。
WM_XBUTTONUP カーソルがウィンドウのクライアント領域にあるときに、ユーザーがXBUTTON1またはXBUTTON2を離したときに投稿されます。 マウスがキャプチャされていない場合、メッセージはカーソルの下のウィンドウに投稿されます。 それ以外の場合、メッセージは、マウスをキャプチャしたウィンドウに投稿されます。

構造

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