我已經添加了新的對話框和片段到我的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