ユーザーがシステムメニューでメニュー項目コマンドを選択すると、アプリケーションはWM_SYSCOMMANDメッセージを受信するため、wParamはSC_CLOSE、SC_CONTEXTHELP、SC_MAXIMIZE、SC_MINIMIZE、SC_RESTOREなどになります。これは論理的です。(もちろん、最小化、最大化、閉じるボタンなどをクリックして、これらのメッセージを送信することもできます。)
ただし、WM_SYSCOMMANDメッセージを送信して、コマンドをWindowsシェルに送信することもできます。たとえば、スタートメニュー(SC_TASKLIST)を表示し、スクリーンセーバー(SC_SCREENSAVE)をアクティブにして、モニター(SC_MONITORPOWER)をオフにすることができます。これは意味がありませんね。これは、アプリケーションのシステムメニューと何の関係がありますか?これは、より「システムコマンド」、つまりメッセージの「WM_SYSCOMMAND」という名前の完全に別の解釈です。これは、メッセージがコマンド要求をシステムに送信するために使用されるようなものです。
このメッセージが2つの一見まったく異なるものに使用されるのはなぜですか。また、「SYSCOMMAND」という名前は何を指しますか(システムメニューのコマンドまたはオペレーティングシステムのコマンド)。