异常听到下面函数:
BOOL CWnd::ContinueModal()
{
return m_nFlags & WF_CONTINUEMODAL;
}
因为窗口没有WF_CONTINUEMODAL风格
1, 如果是模态对话框
如果以下面的方式来使用也会有这个问题
CTestDialog aTestDialog;
aTestDialog.DoModal();//对话框结束时WF_CONTINUEMODAL风格就被移除了
aTest.DoModal();//再次DoModal就会导致上面的断言。
2, 我使用的是非模态对话框
由于在释放非模态对话框时,在PostNcDestroy 函数中只delete this;没有DestroyWindow()造成的。
本文探讨了CWnd类中的ContinueModal()函数在模态及非模态对话框中的使用问题。当对话框结束时,WF_CONTINUEMODAL标志被移除,再次调用DoModal会导致断言失败。对于非模态对话框,释放时未正确调用DestroyWindow()也会引发类似问题。
513

被折叠的 条评论
为什么被折叠?



