CWnd::OnSysCommand
フレームワークは、ユーザーがコントロール メニューからコマンドを選択したとき、または最大化または最小化ボタンを選択すると、このメンバー関数を呼び出します。
afx_msg void OnSysCommand(
UINT nID,
LPARAM lParam
);
パラメーター
nID
必要なシステム コマンドの種類を指定します。このパラメーターには、次のいずれかです:SC_CLOSE 閉じる CWnd のオブジェクト。
SC_HOTKEY は、アプリケーション指定されているホット キーに関連付けられている CWnd のオブジェクトをアクティブにします。lParam の下位ワードはアクティブにするウィンドウの HWND を識別します。
水平方向の スクロールSC_HSCROLL。
SC_KEYMENU のキーストロークを取得してメニュー。
SC_MAXIMIZE (または) SC_ZOOM最大化 CWnd のオブジェクト。
SC_MINIMIZE (または) SC_ICONCWnd のオブジェクトを最小化します。
SC_MOUSEMENU メソッドでマウス クリックしてメニュー。
SC_MOVE の移動 CWnd のオブジェクト。
次のペインにSC_NEXTWINDOW の移動します。
前のウィンドウへのSC_PREVWINDOW の 移動します。
標準の位置とサイズへのSC_RESTORE の復元]ウィンドウ。
SC_SCREENSAVE は SYSTEM.INI ファイルのブート[]セクションで指定されたスクリーンセーバー アプリケーションを実行します。
SC_SIZE のサイズ CWnd のオブジェクト。
SC_TASKLIST は、Windows タスク マネージャーのアプリケーションを実行するか、アクティブにします。
垂直方向のSC_VSCROLL にスクロールします。
lParam
メニュー コマンドがマウスで選択されている場合は、lParam は、カーソルの座標が含まれます。下位ワードは x 座標が含まれ、上位ワードは、y 座標が含まれます。それ以外の場合は、このパラメーターは使用されません。SC_HOTKEY は、アプリケーション指定されているホット キーに関連付けられたウィンドウをアクティブにします。lParam の下位ワードはアクティブにするウィンドウを識別します。
SC_SCREENSAVE は、コントロール パネルのデスクトップのセクションで指定された画面保存のアプリケーションを実行します。
解説
既定では、OnSysCommand は、上の表で指定されている定義されたアクションのコントロール メニューの要求を実行します。
WM_SYSCOMMAND のメッセージで、nID のパラメーターの 4 種類の下位ビットは、Windows で内部的に使用されます。アプリケーションは nIDの値をテストすると、ビットごとの AND 演算子によって nID の値と正確な結果を取得するに 0xFFF0 値を結合する必要があります。
コントロール メニューのメニュー項目が GetSystemMenu、AppendMenu、InsertMenuと ModifyMenu のメンバー関数を変更できます。メニュー コントロールを変更するアプリケーションは OnSysCommandに渡す必要があります WM_SYSCOMMAND のメッセージおよびアプリケーションで処理されない WM_SYSCOMMAND のメッセージを処理する必要があります。アプリケーションによって追加されたコマンドの値がアプリケーションによって処理される必要があり、OnSysCommandに渡すことはできません。
アプリケーションは OnSysCommandに WM_SYSCOMMAND でメッセージを渡すことによってシステム コマンドをいつでも実行できます。
選択できるように定義されたアクセラレータ (ショートカット) のキーストロークで OnSysCommand の呼び出しにコントロール メニューから項目変換されます。; 他のアクセラレータのキーストロークで WM_COMMAND すべてのメッセージに変換されます。
[!メモ]
このメンバー関数は、アプリケーションが Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。この関数に渡されるパラメーターの値は、フレームワークがメッセージ受信時に受け取ったパラメーターの値に基づいています。この関数の基本クラスの実装を呼び出した場合は、関数に渡したパラメーターではなく、メッセージと共に渡されたパラメーター自体が使用されます。
必要条件
ヘッダー: afxwin.h