OnClose():消息響應函數,響應WM_CLOSE消息,當"關閉"按鈕被單擊的時候(而不是我們眼睛所見的對話框從屏幕上消失時),該函數被調用,用戶在響應OnOk()或者OnCancel()函數之後,不會發送WM_CLOSE消息OnDestroy():消息響應函數,響應WM_DESTROY消息,當一個窗口即將被銷燬時,被髮送在單視圖程序中,根據<<深入淺出MFC>>所講,程序退出時執行的操作順序爲:
(1)用戶點擊退出按鈕,發送了WM_CLOSE消息
(2)在WM_CLOSE消息的處理函數中,調用DestroyWindow()
(3)在DestroyWindow()中發送了WM_DESTROY消息
(4)在WM_DESTROY消息中調用PostQuitMessage(),發送WM_QUIT消息,結束消息循環
綜上,程序先調用OnClose()(也可能不調用),然後調用OnDestroy()(必調用),所以,如果要進行程序結束時的清理工作,應該在OnDestroy()中,而不是在OnClose(),否則就有可能會出現內存泄漏的危險了!
From: http://www.cppblog.com/qiaodong/archive/2006/12/11/16287.html