SetActiveWindow アクティブウィンドウの設定

Cの宣言:

HWND SetActiveWindow(HWND hWnd);

VBの宣言:

Declare Function SetActiveWindow Lib "user32" (ByVal hWnd As Long) As Long

説明:

指定されたウィンドウをアクティブウィンドウにする。hWndが示すウィンドウは、この関数を呼び出したスレッドに属するウィンドウでなければならない。他のスレッドが持つウィンドウに対するSetActiveWindowの呼び出しは、効果がない。

アクティブウィンドウの概念は、スレッドごとに存在する。

SetFocus関数と違い、NT3.51などでアイコン化されているウィンドウに対するSetActiveWindowは有効である。この場合、アイコン化されているウィンドウがアクティブウィンドウとなる。(→宿題)

この関数を呼び出したスレッドが、プロセスの中で最も優先順位の高いスレッドではない場合、SetActiveWindowでそのスレッドのアクティブウィンドウを設定したとしても、そのスレッドが優先順位の最も高いスレッドになったときには、システムがアクティブウィンドウを変更してしまっているかもしれないので、注意が必要である。

戻り値は、この関数を呼ぶ直前にアクティブウィンドウであったウィンドウのハンドルである。アクティブウィンドウが存在していなかったり、hWndが無効なハンドルならば、NULLが返される。

(original text:1998/12/25 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。