WM_ACTIVATE メッセージは、アクティブ化または非アクティブ化されようとしているウィンドウに送信されます。
ウィンドウは、ウィンドウプロシージャを介してこのメッセージを受け取ります。
#define WM_ACTIVATE 0x0006 fActive = wParam & 0xFFFF; // アクティブ化フラグ fMinimized = (wParam >> 16) & 0xFFFF; // 最小化フラグ hwndPre = lParam; // 以前のウィンドウ
wParam パラメータの下位ワードの値。
ウィンドウがアクティブ化されるのか非アクティブ化されるのかが指定されます。以下の値のいずれかになります。
値 | 意味 |
---|---|
0 (WA_INACTIVE) | 非アクティブ化されます。 |
1 (WA_ACTIVE) | マウスクリック以外の方法(例えば、キーボードインターフェースによる選択や、 SetActiveWindow 関数によるもの)でアクティブ化されます。 |
2 (WA_CLICKACTIVE) | マウスクリックによってアクティブ化されます。 |
wParam パラメータの上位ワードの値。
ウィンドウが最小化されているかどうかが指定されます。 0 以外の値ならばウィンドウは最小化されています。 0 ならばウィンドウは最小化されていません。
lParam パラメータの値。
fActive パラメータが 0 (WA_INACTIVE) のときは、新しくアクティブになったウィンドウのハンドルが指定されます。 fActive がそれ以外の値のときは、それまでアクティブだったウィンドウのハンドルが指定されます。
アプリケーションがこのメッセージを処理した場合は 0 を返します。
非アクティブ化されるウィンドウとアクティブ化されるウィンドウが同じ入力キューを使用している場合は、まず、非アクティブ化されるトップレベルウィンドウのウィンドウプロシージャにメッセージが送られ、続いて、アクティブ化されるトップレベルウィンドウのウィンドウプロシージャに送られます。2つのウィンドウが異なる入力キューを持つ場合には、メッセージは非同期的に送られるので、ウィンドウは直ちにアクティブ化されます。
ウィンドウがアクティブ化されるときにウィンドウが最小化されていない場合は、 DefWindowProc 関数はウィンドウにキーボードフォーカスを設定します。
Windows 95 以降 / Windows NT 3.1 以降