我有一個窗口被創建並且OnDestroy()在某個時候被調用,而用戶不會點擊關閉窗口的'Close'或'X'按鈕。在什麼情況下可以調用afx_msg void OnDestroy()又名CWnd:OnDestroy()?
什麼其他操作/動作/事情可能會導致此函數被調用,爲什麼?
微軟的文檔也沒用按通常:
http://msdn.microsoft.com/en-us/library/vstudio/2eahe3wf.aspx
我有一個窗口被創建並且OnDestroy()在某個時候被調用,而用戶不會點擊關閉窗口的'Close'或'X'按鈕。在什麼情況下可以調用afx_msg void OnDestroy()又名CWnd:OnDestroy()?
什麼其他操作/動作/事情可能會導致此函數被調用,爲什麼?
微軟的文檔也沒用按通常:
http://msdn.microsoft.com/en-us/library/vstudio/2eahe3wf.aspx
它沒有記錄,因爲該列表會非常長。例如,一個常見原因是按Alt-F4。畢竟,這發送相同的WM_CLOSE
消息。實際上,任何將WM_CLOSE
發送到窗口的東西都會導致此問題。
還有應用程序關閉,可能是因爲PC斷電或用戶註銷。
謝謝,但不幸的是,這一切都沒有發生。它試圖在模態窗口內的列表中處理一些數據。它在某個時刻被捕獲並且崩潰轉儲指向OnDestroy()函數。一個異常或類似的東西會導致這個函數被調用嗎? –
子窗口,刪除CWnd內部的數據(我假設有某種指向它的指針)和剪貼板。我對此沒有經驗,但這些是我的猜測: -/ –
謝謝,但不幸的是,這種模式對話框沒有子窗口,因爲它是它的父母的孤獨的孩子。沒有顯式刪除CWnd內部的任何數據,剪貼板未被使用。 –
@BrainTHannan是否有任何事件發生到父窗口,可能會影響有問題的子窗口? –