我知道如何创建子窗口。但是,如果我想创建一个窗口(例如自定义设置)并在销毁它之后再创建一个窗口(基于HGE引擎)怎么办。如果我可以通过 WM_DESTROY 打破消息循环,我可以在此消息循环之后创建第二个窗口。但据我所知,GetMessage仅在 WM_QUIT 消息中返回 0,我无法发送此消息,因为这意味着:“关闭应用程序”而不是“关闭窗口”。所以我的问题是:当第一个窗口获得 WM_DESTROY 时,我怎样才能打破消息循环?这真的可能吗?
2 回答
2
这真的很简单,你不应该试图打破你的消息循环。
- 当您处理第一个窗口的 WM_CLOSE 消息时,调用 CreateWindow 等来创建并显示第二个窗口。
- 当您处理第二个窗口的 WM_DESTROY 消息时,调用 PostQuitMessage 以结束事情。
于 2014-02-01T08:36:24.397 回答
0
只需使用 PostMessage。
#define WM_USER_CREATE_NEW_CHILD WM_USER + 1
void OnDestroy() // on destroy first child
{
PostMessage( parentWindow, WM_USER_CREATE_NEW_CHILD, 0, 0 );
于 2014-02-01T07:29:28.937 回答