WM_SYSCOMMAND メッセージは、システムメニュー(コントロールメニュー)のアイテムが選択された場合や、ウィンドウ右上の「最大化」「最小化」「元のサイズに戻す」「閉じる」ボタンが押された場合に、ウィンドウに送信されます。
ウィンドウは、ウィンドウプロシージャを介してこのメッセージを受け取ります。
#define WM_SYSCOMMAND 0x0112 uCmdType = wParam & 0xFFF0; // キーフラグ xPos = lParam & 0xFFFF; // カーソルx座標 yPos = (lParam >> 16) & 0xFFFF; // カーソルy座標
wParam パラメータと 0xFFF0 をAND結合した値。
要求されたシステムコマンドのタイプが指定されます。以下の値のいずれかになります。
値 | 意味 |
---|---|
0xF000 (SC_SIZE) | ウィンドウサイズを変更します。 |
0xF010 (SC_MOVE) | ウィンドウを移動します。 |
0xF020 (SC_MINIMIZE) | ウィンドウを最小化します。 |
0xF030 (SC_MAXIMIZE) | ウィンドウを最大化します。 |
0xF040 (SC_NEXTWINDOW) | 次のウィンドウに移動します。 |
0xF050 (SC_PREVWINDOW) | 前のウィンドウに移動します。 |
0xF060 (SC_CLOSE) | ウィンドウをクローズします。 |
0xF070 (SC_VSCROLL) | 垂直にスクロールします。 |
0xF080 (SC_HSCROLL) | 水平にスクロールします。 |
0xF090 (SC_MOUSEMENU) | マウスクリックによりメニューを取得します。 |
0xF100 (SC_KEYMENU) | キー操作によりメニューを取得します。 |
0xF120 (SC_RESTORE) | ウィンドウを元の位置とサイズに戻します。 |
0xF130 (SC_TASKLIST) | スタートメニューを表示します。 |
0xF140 (SC_SCREENSAVE) | system.ini の [boot] セクションで指定されたスクリーンセーバーを起動します。 |
0xF150 (SC_HOTKEY) | アプリケーション指定のホットキーに関連付けられたウィンドウをアクティブにします。 lParam パラメータの下位ワードがアクティブになるウィンドウのハンドルを示します。 |
0xF160 (SC_DEFAULT) | ユーザーがシステムメニューをダブルクリックしたことにより、デフォルトメニューアイテムを選択します。 |
0xF170 (SC_MONITORPOWER) | ディスプレイを表示状態を設定します。このコマンドは、バッテリーを使用するコンピュータなどのパワーセブ機能をもつデバイスをサポートします。 lParam パラメータが 1 のときはディスプレイが省電力表示に移行することを示し、 2 のときはディスプレイ表示を停止しようとしていることを示します。 |
0xF180 (SC_CONTEXTHELP) | マウスポインタをクエスチョンマークに変えます。この後にユーザーがダイアログボックス内のコントロールをクリックすると、コントロールは WM_HELP メッセージを受け取ります。 |
lParam パラメータの下位ワードの値。
ウィンドウメニューがマウスで選択された場合にカーソルのx座標がスクリーン座標で指定されます。それ以外の場合は使用されません。
lParam パラメータの下位ワードの値。
ウィンドウメニューがマウスで選択された場合にカーソルのy座標がスクリーン座標で指定されます。それ以外の場合は使用されません。
アプリケーションがこのメッセージを処理した場合は 0 を返します。
DefWindowProc 関数は、上の表で示した処理を実行します。
Windows 95 以降 / Windows NT 3.1 以降