說明
在一個已有的wxWidgets項目中,點選程式視窗的關閉按鈕,程式并沒有正常退出。
正常退出情況:
線程 0x6c8 已退出,傳回值為 0 (0x0)。
線程 0x8ec 已退出,傳回值為 0 (0x0)。
程式“[2464] test.exe”已退出,傳回值為 0 (0x0)。
通過任務管理器,還能夠檢視到程式在背景運作
分析操作
編寫最簡單的例子,正常退出沒有問題。通過逐漸的屏蔽掉代碼,最終發現在一個視窗的構造函數中建立另一個視窗,導緻程式無法正常退出。建立的另一個視窗是一個非模态對話框,但是沒有調用到Show函數,将界面顯示出來,這個時候,點選目前的視窗關閉按鈕,實際上另一個視窗并沒有被銷毀,說明當點選關閉按鈕,發送關閉事件的時候,隻有顯示的視窗能夠接收到該消息
解決
通過調整建立視窗的代碼,解決了問題
本文轉自fengyuzaitu 51CTO部落格,原文連結:http://blog.51cto.com/fengyuzaitu/1955432,如需轉載請自行聯系原作者