WM_ACTIVATE

WM_ACTIVATEメッセージは、アクティブ化されようとしているウィンドウと非アクティブ化されようとしているウィンドウの両方に送信されます。

ウィンドウは、ウィンドウプロシージャを介してこのメッセージを受け取ります。

#define  WM_ACTIVATE    0x0006

パラメータ

wParam

wParamパラメータの下位ワードは、ウィンドウがアクティブ化されるのか非アクティブ化されるのかを指定する値です。以下の値のいずれかになります。

0 (WA_INACTIVE)

非アクティブ化されます。

1 (WA_ACTIVE)

マウスクリック以外の方法(例えば、キーボードインターフェースによるウィンドウ選択や、SetActiveWindow関数の呼び出し)によってアクティブ化されます。

2 (WA_CLICKACTIVE)

マウスクリックによってアクティブ化されます。

wParamパラメータの上位ワードは、ウィンドウが最小化されているかどうかを示す値です。0以外の値ならばウィンドウは最小化されています。0ならばウィンドウは最小化されていません。

lParam

lParamパラメータは、このウィンドウに代わってアクティブ化または非アクティブ化されるウィンドウのハンドルです。

wParamパラメータの下位ワードが0 (WA_INACTIVE) のときは、新しくアクティブになったウィンドウのハンドルが指定されます。それ以外の値のときは、それまでアクティブだったウィンドウのハンドルが指定されます。このパラメータが0 (NULL) になる場合もあります。

戻り値

アプリケーションがこのメッセージを処理した場合は0を返すべきです。

解説

非アクティブ化されるウィンドウとアクティブ化されるウィンドウが同じ入力キューを使用している場合は、まず、非アクティブ化されるトップレベルウィンドウのウィンドウプロシージャにメッセージが送られ、続いて、アクティブ化されるトップレベルウィンドウのウィンドウプロシージャに送られます。2つのウィンドウが異なる入力キューを持つ場合には、メッセージは非同期的に送られるので、ウィンドウは直ちにアクティブ化されます。

ウィンドウがアクティブ化されるときにウィンドウが最小化されていない場合は、DefWindowProc関数はウィンドウにキーボードフォーカスを設定します。

ウィンドウがマウスクリックによってアクティブ化された場合、ウィンドウはWM_MOUSEACTIVATEメッセージも受け取ります。

対応情報

Windows 95 以降 / Windows NT 3.1 以降