SetCapture 関数 (winuser.h)
マウス キャプチャを、現在のスレッドに属する指定したウィンドウに設定します。 SetCapture は、マウスがキャプチャ ウィンドウの上にある場合、またはマウスがキャプチャ ウィンドウの上にあり、マウス ボタンが押され、ボタンがまだ下がっている間にマウス入力をキャプチャします。 マウスをキャプチャできるウィンドウは一度に 1 つだけです。
別のスレッドによって作成されたウィンドウの上にマウス カーソルがある場合、マウス ボタンが下がっている場合にのみ、指定したウィンドウにマウス入力が送信されます。
構文
HWND SetCapture(
[in] HWND hWnd
);
パラメーター
[in] hWnd
型: HWND
マウスをキャプチャする現在のスレッド内のウィンドウへのハンドル。
戻り値
型: HWND
戻り値は、以前にマウスをキャプチャしたウィンドウへのハンドルです。 このようなウィンドウがない場合、戻り値は NULL です。
注釈
マウスをキャプチャできるのは、前面のウィンドウだけです。 バックグラウンド ウィンドウがこれを試みると、ウィンドウは、カーソルのホット スポットがウィンドウの可視部分内にあるときに発生するマウス イベントに対してのみメッセージを受信します。 また、前面のウィンドウがマウスをキャプチャしている場合でも、ユーザーが別のウィンドウをクリックすると、そのウィンドウが前面に表示されます。
ウィンドウですべてのマウス入力が不要になった場合、ウィンドウを作成したスレッドは ReleaseCapture 関数を呼び出してマウスを解放する必要があります。
この関数を使用して、別のプロセス用のマウス入力をキャプチャすることはできません。
マウスをキャプチャすると、メニュー ホットキーやその他のキーボード アクセラレータは機能しません。
例
例については、「 マウスによる線の描画」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winuser.h (Windows.h を含む) |
Library | User32.lib |
[DLL] | User32.dll |
API セット | ext-ms-win-ntuser-mouse-l1-1-0 (Windows 8 で導入) |
関連項目
概念
リファレンス