我有一個無模式對話框,當我關閉主應用程序時,有時會在屏幕上留下對話框。如果我手動關閉它,所有析構函數都會正確調用。但是到目前爲止,如果我試圖通過C++代碼來實現,我在Debug版本中遇到了問題,這些問題不能讓我對Release版本中發生的事情充滿信心。如何在C++中關閉無模式MFC對話框
什麼是關閉模型對話框的正確方法? PostQuitMessage()
的文檔指出它關閉了整個線程(是在單獨的線程中運行的非模態對話框,或者是單個MFC應用程序UI線程的一部分?)。撥打DestroyWindow()
在實踐中給我提出了問題。發送WM_CLOSE
並不覺得是正確的。而CWnd::EndDialog()
僅適用於模態對話框。在這些......或其他地方是否有正確的答案?
啊等 - 接受你的答案太快了,因爲我以爲我找到了一個金礦......但它沒有說你如何調用OnCancel()函數 - 直接調用它,發送WM_CANCEL到窗口,或者是WM_CLOSE ...? – omatai
OnCancel響應用戶操作。你可以直接調用它,但在簡單的情況下,它只需調用DestroyWindow,所以你可以直接調用它。 –