我有一个无模式对话框,当我关闭主应用程序时,有时会在屏幕上留下对话框。如果我手动关闭它,所有析构函数都会正确调用。但是到目前为止,如果我试图通过C++代码来实现,我在Debug版本中遇到了问题,这些问题不能让我对Release版本中发生的事情充满信心。如何在C++中关闭无模式MFC对话框
什么是关闭模型对话框的正确方法? PostQuitMessage()
的文档指出它关闭了整个线程(是在单独的线程中运行的非模态对话框,或者是单个MFC应用程序UI线程的一部分?)。拨打DestroyWindow()
在实践中给我提出了问题。发送WM_CLOSE
并不觉得是正确的。而CWnd::EndDialog()
仅适用于模态对话框。在这些......或其他地方是否有正确的答案?
啊等 - 接受你的答案太快了,因为我以为我找到了一个金矿......但它没有说你如何调用OnCancel()函数 - 直接调用它,发送WM_CANCEL到窗口,或者是WM_CLOSE ...? – omatai
OnCancel响应用户操作。你可以直接调用它,但在简单的情况下,它只需调用DestroyWindow,所以你可以直接调用它。 –