关于模式对话框的打开与关闭
2009年3月16日星期一
打开模式对话框通常用DoModal()函数,而关闭模式对话框则有多种方法,如:OnCancel(),EndDialog(nExitCode)等。OnCancel()是受保护成员函数,因此只能在类内使用。如果需要在类外进行关闭,则不能直接调用OnCancel(),需要使用EndDialog(nExitCode),可以制定关闭窗口后DoModal()的返回值nExitCode,这样可以对对话框关闭的情况进行判断。下面是些示例代码:
if (m_nOpenNum > 0) return;
// 打开主窗口
// if (0 != m_nIsOpenDlg)
{
m_nOpenNum++;
int ret = (int)m_MainDlg.DoModal();
m_nOpenNum--;
if (ret == 4)
{
m_nOpenNum++;
ret = (int)m_MainDlg.DoModal();
m_nOpenNum--;
}
if (ret == 3)
{
OnClose();
}
}
// 退出应用程序
if (m_nOpenNum > 0)
{
m_MainDlg.EndDialog(3);
}
else
{
OnClose();
}