Windows CloseWindow和WM_CLOSE的关系是什么

Windows CloseWindow和WM_CLOSE的关系是什么,windows,winapi,mfc,window-messages,Windows,Winapi,Mfc,Window Messages,我现在有点困惑:是和任何方式“相关”还是完全不同的东西 的文档根本没有提到API函数。CloseWindow真的应该被称为“最小化窗口”吗?或者我遗漏了什么?CloseWindow和WM\u CLOSE是完全不相关的。CloseWindow函数的名称不正确。它的逆函数,OpenWindow的名称也同样糟糕,因为它可以恢复窗口 我怀疑这些名字确实可以追溯到很长一段时间,可能是Windows版本1或2。我推测,我们现在所说的最小化和恢复,在当时被称为关闭和打开 最小化或还原窗口的常用方法是调用Sho

我现在有点困惑:是和任何方式“相关”还是完全不同的东西


的文档根本没有提到API函数。
CloseWindow
真的应该被称为“最小化窗口”吗?或者我遗漏了什么?

CloseWindow
WM\u CLOSE
是完全不相关的。
CloseWindow
函数的名称不正确。它的逆函数,
OpenWindow
的名称也同样糟糕,因为它可以恢复窗口

我怀疑这些名字确实可以追溯到很长一段时间,可能是Windows版本1或2。我推测,我们现在所说的最小化和恢复,在当时被称为关闭和打开

最小化或还原窗口的常用方法是调用
ShowWindow
passing
SW\u minimize
SW\u restore


我建议您完全忘记
CloseWindow
,而
OpenWindow

CloseWindow
是一个非常糟糕的winapi函数。它实际上并没有关闭一个窗口,只是将其最小化。你的意思可能是
destronWindow()

WM_CLOSE
通常是默认窗口程序生成的消息,以响应用户按下Alt+F4或单击窗口的关闭按钮。底层消息是
WM_SYSCOMMAND
SC_CLOSE
。它也可以在代码中生成,比如窗口+关闭菜单项


您可以在窗口过程或MFC消息映射中侦听
WM_CLOSE
。用户希望窗口关闭。所以您通常调用
destronWindow()
。您不必这样做,例如,您可以显示一个消息框,询问用户是否应该保存数据。如果他单击“否”,那么你就不会调用
DestroyWindow()

,我会说忽略关闭窗口和打开窗口(),原因正如前面的海报所建议的。然而,虽然技术上可行,但在WM_销毁期间处理是否保存或实际销毁窗口(即提示用户)被认为是一种不好的形式。一旦调用DestroyWindow,并且操作系统发送WM_DESTROY消息,期望为销毁窗口做好准备。因此,工作流应该是这样的:

在有问题的窗口把手附近发送WM_。CloseWindow应该这样做,比如DestroyWindow发送WM_DESTROY消息或ShowWindow发送WM_ShowWindow消息。但是,由于没有,请将WM_发送到靠近窗口的位置


接下来,在WM_CLOSE消息的处理过程中,您可以询问用户是否希望保存任何内容,或者是否打算实际关闭窗口。如果他们取消关闭窗口,只需返回零,告诉操作系统您已处理该消息。如果用户表示希望继续,则可以调用DestroyWindow或将消息传递给DefWindowProc,DefWindowProc也会立即执行同样的操作。任何文件的保存都应在WM_CLOSE的处理过程中进行。在WM_DESTROY的处理过程中,您应该删除与窗口关联的任何动态分配的内存并释放资源。最后,WM_NCDESTROY是窗口收到的最后一条消息

当我在这里问“对话常量DS_RECURSE的值是多少?”()--我的主题是[关闭]。所以“CloseWindow和WM_CLOSE的关系是什么”也必须是[closed]:-)@kero:你要求的是一个常数的值,而这个常数没有被记录下来。这不是一个实用的编程问题。与这个问题完全相反。这就是为什么你的门关了,而这个门没有关。