私は現在少し混乱しています: WM_CLOSEと::CloseWindow
何らかの形で「関連」しているのか、それともまったく異なるものですか?
Closing Windowsのドキュメントでは、API 関数についてはまったく言及されていませんCloseWindow
。本当に「MinimizeWindow」と呼ばれるべきCloseWindow
ですか、それとも何が欠けていますか?
私は現在少し混乱しています: WM_CLOSEと::CloseWindow
何らかの形で「関連」しているのか、それともまったく異なるものですか?
Closing Windowsのドキュメントでは、API 関数についてはまったく言及されていませんCloseWindow
。本当に「MinimizeWindow」と呼ばれるべきCloseWindow
ですか、それとも何が欠けていますか?
CloseWindow
とWM_CLOSE
全く無関係です。CloseWindow
関数の名前が悪い。その逆の機能は、OpenWindow
ウィンドウを復元することを考えると、同様に悪い名前が付けられています。
これらの名前は、おそらく Windows バージョン 1 または 2 にさかのぼると思います。現在、最小化および復元と呼ばれるものは、当時はcloseおよびopenと呼ばれていたと推測しています。
ウィンドウを最小化または復元する通常の方法は、ShowWindow
渡すSW_MINIMIZE
またはを呼び出すことSW_RESTORE
です。
CloseWindow
とについてはすべて忘れることをお勧めしますOpenWindow
。
CloseWindow
は、非常に不適切な名前の winapi 関数です。ウィンドウを実際に閉じるのではなく、最小化するだけです。あなたがおそらく意味したのはDestroyWindow()
.
WM_CLOSE
Alt通常、ユーザーが+を押すF4か、ウィンドウの閉じるボタンをクリックすると、デフォルトのウィンドウ プロシージャによって生成されるメッセージです。基になるメッセージはWM_SYSCOMMAND
、SC_CLOSE
です。Window + Close メニュー項目のように、コードでも生成できます。
WM_CLOSE
ウィンドウ プロシージャまたは MFC メッセージ マップでリッスンできます。ユーザーは、ウィンドウが閉じられることを期待します。したがって、通常は を呼び出しますDestroyWindow()
。必須ではありません。たとえば、メッセージ ボックスを表示して、データを保存するかどうかをユーザーに尋ねることができます。彼が [いいえ] をクリックした場合、あなたは電話をかけませんDestroyWindow()
。