我已经添加了新的对话框和片段到我的wxApp,但现在当我关闭主框架时,主框架被删除,但它永远不会到达OnExit函数并被卡住。wxApp在关闭时卡住
当我尝试 “打破一切”,这让在此函数调用:
wxIdleWakeUpModule::MsgHookProc
在:
return CallNextHookEx(ms_hMsgHookProc, nCode, wParam, lParam);
你有关于如何解决任何建议, ?
我已经添加了新的对话框和片段到我的wxApp,但现在当我关闭主框架时,主框架被删除,但它永远不会到达OnExit函数并被卡住。wxApp在关闭时卡住
当我尝试 “打破一切”,这让在此函数调用:
wxIdleWakeUpModule::MsgHookProc
在:
return CallNextHookEx(ms_hMsgHookProc, nCode, wParam, lParam);
你有关于如何解决任何建议, ?
因此,在我逐一测试了我添加到我之前工作的程序中的所有代码之后,我意识到我创建的wxDialog
中有一个没有父代,但这不是本意。
如此,是因为它不会关闭,因为在主窗口的一个还活着(即使它未显示)
感谢所有您的帮助
使用关闭对话框时销毁。这page说明如何在堆上创建对象时,做到这一点:
void AskUser()
{
MyAskDialog *dlg = new MyAskDialog(...);
if (dlg->ShowModal() == wxID_OK)
...
//else: dialog was cancelled or some another button pressed
dlg->Destroy();
}
当堆栈你不应该做什么特别的事情上创建对话框。
你设置的任何消息钩子钩住你的应用程序和不正确的清理? – Pete
你是否在任何地方做任何wxIdleEvent处理?在那里贴一个断点,看它是否在不退出时被调用。也许它会导致更多的消息被发布到事件队列中,然后导致它再次空闲并发布更多事件,所以n。 – Pete
皮特,我不知道什么是消息钩,所以也许我没有。另外我自己生成的唯一事件是'wxCommandEvent',我不知道它是否也是wxIdleEvent – Arthur