WM_ACTIVATE

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

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

#define  WM_ACTIVATE    0x0006

fActive    =  wParam & 0xFFFF;         // アクティブ化フラグ
fMinimized = (wParam >> 16) & 0xFFFF;  // 最小化フラグ
hwndPre    =  lParam;                  // 以前のウィンドウ

パラメータ

fActive

wParam パラメータの下位ワードの値。

ウィンドウがアクティブ化されるのか非アクティブ化されるのかが指定されます。以下の値のいずれかになります。

意味
0 (WA_INACTIVE)

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

1 (WA_ACTIVE)

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

2 (WA_CLICKACTIVE)

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

fMinimized

wParam パラメータの上位ワードの値。

ウィンドウが最小化されているかどうかが指定されます。 0 以外の値ならばウィンドウは最小化されています。 0 ならばウィンドウは最小化されていません。

hwndPre

lParam パラメータの値。

fActive パラメータが 0 (WA_INACTIVE) のときは、新しくアクティブになったウィンドウのハンドルが指定されます。 fActive がそれ以外の値のときは、それまでアクティブだったウィンドウのハンドルが指定されます。

戻り値

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

解説

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

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

対応情報

Windows 95 以降 / Windows NT 3.1 以降