new 出来的 Dialog , 关闭后如何从内存中销毁
缺省的CDialog::OnOK和CDialog::OnCancel函数均调用EndDialog。
因此,在模态对话框中,用户的ONOK和ONCANCEL消息都会将对话框窗口对象销毁(调用EndDialog函数)。
但是在非模态对话框中,对话框窗口对象并没有销毁,只是隐藏起来(调用EndDialog函数)。
若想真正销毁,则需重写OnOK和OnCancel函数,并在其中调用CWnd:: DestroyWindow而不是CDialog::EndDialog来关闭非模态对话框。调用CWnd:: DestroyWindow是直接删除窗口的一般方法。
代码如下:
void CServerDlg::OnCancel()
{
// TODO: Add extra cleanup here
//CDialog::OnCancel();
DestroyWindow();
}
http://community.csdn.net/Expert/topicview.asp?id=5536544
他们设置了哪些标签:
销毁非模态Dialog
谁收藏了这个网址:
时间:2007-5-17 11:18:58 | 相关网摘
时间:2007-5-17 16:06:12 | 相关网摘
时间:2007-5-18 3:30:07 | 相关网摘
时间:2007-5-21 13:33:44 | 相关网摘
使用标签:销毁非模态Dialog,时间:2007-7-12 10:40:24 | 相关网摘
缺省的CDialog::OnOK和CDialog::OnCancel函数均调用EndDialog。
因此,在模态对话框中,用户的ONOK和ONCANCEL消息都会将对话框窗口对象销毁(调用EndDialog函数)。
但是在非模态对话框中,对话框窗口对象并没有销毁,只是隐藏起来(调用EndDialog函数)。
若想真正销毁,则需重写OnOK和OnCancel函数,并在其中调用CWnd:: DestroyWindow而不是CDialog::EndDialog来关闭非模态对话框。调用CWnd:: DestroyWindow是直接删除窗口的一般方法。
代码如下:
void CServerDlg::OnCancel()
{
// TODO: Add extra cleanup here
//CDialog::OnCancel();
DestroyWindow();
}