CloseWindow和WM_CLOSE的关系是什么

Mar*_* Ba 10 windows winapi mfc window-messages

我目前有点困惑:WM_CLOSE是否与::CloseWindow任何"相关"或完全不同的东西?

Closing Windows的文档根本没有提到API函数CloseWindow.应该CloseWindow真的叫做"MinimizeWindow"还是我错过了什么?

Han*_*ant 6

CloseWindow是一个异常糟糕的winapi功能.它实际上并没有关闭窗口,它只是最小化它.你的意思是什么DestroyWindow().

WM_CLOSE通常是由默认窗口过程生成的消息,以响应用户按Alt+ F4或单击窗口的关闭按钮.基本信息是WM_SYSCOMMAND,SC_CLOSE.它可以在代码中生成,如Window + Close菜单项.

您可以WM_CLOSE在窗口过程或MFC消息映射中侦听.用户希望窗口关闭.所以你通常打电话DestroyWindow().您不必这样做,您可能会显示一个消息框,并询问用户是否应保存数据.如果他点击,那么你不叫DestroyWindow().


Dav*_*nan 5

CloseWindow并且WM_CLOSE完全不相关.该CloseWindow功能名称很糟糕.它的反函数OpenWindow同样被严格命名,因为它恢复了窗口.

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

最小化或恢复窗口的常用方法是调用ShowWindow传递SW_MINIMIZESW_RESTORE.

我建议你忘掉所有关于CloseWindowOpenWindow.