11

私は現在少し混乱しています: WM_CLOSE::CloseWindow何らかの形で「関連」しているのか、それともまったく異なるものですか?

Closing Windowsのドキュメントでは、API 関数についてはまったく言及されていませんCloseWindow。本当に「MinimizeWindow」と呼ばれるべきCloseWindowですか、それとも何が欠けていますか?

4

3 に答える 3

7

CloseWindowWM_CLOSE全く無関係です。CloseWindow関数の名前が悪い。その逆の機能は、OpenWindowウィンドウを復元することを考えると、同様に悪い名前が付けられています。

これらの名前は、おそらく Windows バージョン 1 または 2 にさかのぼると思います。現在、最小化および復元と呼ばれるものは、当時はcloseおよびopenと呼ばれていたと推測しています。

ウィンドウを最小化または復元する通常の方法は、ShowWindow渡すSW_MINIMIZEまたはを呼び出すことSW_RESTOREです。

CloseWindowとについてはすべて忘れることをお勧めしますOpenWindow

于 2013-06-18T13:01:50.710 に答える
7

CloseWindowは、非常に不適切な名前の winapi 関数です。ウィンドウを実際に閉じるのではなく、最小化するだけです。あなたがおそらく意味したのはDestroyWindow().

WM_CLOSEAlt通常、ユーザーが+を押すF4か、ウィンドウの閉じるボタンをクリックすると、デフォルトのウィンドウ プロシージャによって生成されるメッセージです。基になるメッセージはWM_SYSCOMMANDSC_CLOSEです。Window + Close メニュー項目のように、コードでも生成できます。

WM_CLOSEウィンドウ プロシージャまたは MFC メッセージ マップでリッスンできます。ユーザーは、ウィンドウが閉じられることを期待します。したがって、通常は を呼び出しますDestroyWindow()。必須ではありません。たとえば、メッセージ ボックスを表示して、データを保存するかどうかをユーザーに尋ねることができます。彼が [いいえ] をクリックした場合、あなたは電話をかけませんDestroyWindow()

于 2013-06-18T14:03:36.177 に答える