<Return[S]><Top>

SetCapture

Declare Function Api_SetCapture& Lib "user32" Alias "SetCapture" (ByVal hWnd&)

Declare Function SetCapture Lib "user32" Alias "SetCapture" (ByVal hwnd As Long) As Long

現在のスレッドに所属する、指定されたウィンドウで、マウスのキャプチャを設定する。あるウィンドウがマウスをキャプチャしている場合、カーソル(マウスカーソル)がそのウィンドウの範囲内にあるかどうかにかかわりなく、すべてのマウス入力を受け取る。一度に 1 つのウィンドウだけがマウスをキャプチャできる。

ほかのスレッドが作成したウィンドウの範囲内にカーソルを合わせてマウスボタンを押した場合に限って、システムはそのウィンドウへマウス入力を送信する。

パラメータ
hWnd
    マウスをキャプチャする、現在のスレッドに属する 1 つのウィンドウのハンドルを指定する。
 

戻り値
    関数が成功すると、以前にマウスをキャプチャしていたウィンドウのハンドルが返る。そのようなウィンドウがない場合は、NULL が返る。

解説
    マウスをキャプチャできるのは、フォアグラウンドウィンドウだけである。

    バックグラウンドウィンドウでマウスをキャプチャしようとすると、そのウィンドウの可視領域内のホットスポットの範囲内にカーソルが存在している

    ときに発生したマウスイベントだけが、そのウィンドウへ通知される。

    また、フォアグラウンドウィンドウがマウスをキャプチャしている場合であっても、ユーザーはほかのウィンドウをクリックして、そのウィンドウをフォ

    アグラウンドウィンドウにすることができる。
    1 つのウィンドウですべてのマウス入力をキャプチャする必要がなくなった段階で、そのウィンドウを作成したスレッドは ReleaseCapture 関数を

    呼び出し、マウスのキャプチャを解除するべきである。
    この関数を使って、ほかのプロセスでマウスのキャプチャを開始することはできない。
    マウスのキャプチャを行っている場合、メニューのホットキーと他のキーボードアクセラレータ(ショートカットキー)は機能しない。
    Windows 95:この関数を呼び出すと、マウスのキャプチャを失うウィンドウは、WM_CAPTURECHANGED メッセージを受け取る。