gpt4 book ai didi

c++ - 如何正确销毁窗口?

转载 作者:行者123 更新时间:2023-11-30 04:40:13 25 4
gpt4 key购买 nike

我正在编写一个小游戏,我将 lpfnWndProc 设置为 DefWindowProc之后,我以这种方式做了一个循环:

    MSG lastMessage;
while (true)
{
if (PeekMessage(
&lastMessage,
this->getWindow(),
0, 0,
PM_REMOVE))
{
TranslateMessage(&lastMessage);
DispatchMessage(&lastMessage);
}
}

那么在这种情况下我该如何处理关闭窗口事件呢?

最佳答案

首先,这不是您编写消息循环的方式:它在等待消息时会占用 100% 的 CPU,并且不会从队列中删除其他窗口的消息。它也永远不会终止。参见 here一个消息循环的例子。

关于关闭窗口:DefWindowProc 将自动处理WM_CLOSE 并销毁您的窗口。如果您希望您的应用程序在窗口关闭时终止,您需要处理 WM_DESTROY 并从中调用 PostQuitMessage(0)。这意味着您将需要自己的 window procedure而不是 DefWindowProc

关于c++ - 如何正确销毁窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1656790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com