2013-10-08 46 views
0

我有一個窗口被創建並且OnDestroy()在某個時候被調用,而用戶不會點擊關閉窗口的'Close'或'X'按鈕。在什麼情況下可以調用afx_msg void OnDestroy()又名CWnd:OnDestroy()?

什麼其他操作/動作/事情可能會導致此函數被調用,爲什麼?

微軟的文檔也沒用按通常:

http://msdn.microsoft.com/en-us/library/vstudio/2eahe3wf.aspx

+0

子窗口,刪除CWnd內部的數據(我假設有某種指向它的指針)和剪貼板。我對此沒有經驗,但這些是我的猜測: -/ –

+0

謝謝,但不幸的是,這種模式對話框沒有子窗口,因爲它是它的父母的孤獨的孩子。沒有顯式刪除CWnd內部的任何數據,剪貼板未被使用。 –

+0

@BrainTHannan是否有任何事件發生到父窗口,可能會影響有問題的子窗口? –

回答

0

它沒有記錄,因爲該列表會非常長。例如,一個常見原因是按Alt-F4。畢竟,這發送相同的WM_CLOSE消息。實際上,任何將WM_CLOSE發送到窗口的東西都會導致此問題。

還有應用程序關閉,可能是因爲PC斷電或用戶註銷。

+0

謝謝,但不幸的是,這一切都沒有發生。它試圖在模態窗口內的列表中處理一些數據。它在某個時刻被捕獲並且崩潰轉儲指向OnDestroy()函數。一個異常或類似的東西會導致這個函數被調用嗎? –

相關問題