MFC 模块对话框和非模态对话框的创建与释放
2011-08-01 16:16
141 查看
模态对话框在应用继续进行之前必须关闭。非模态对话框允许用户执行另外的操作而不必取消或删除该对话框。
1 模块对话框
// 创建对话框
CMyDlg mydlg(this);
// 显示对话框
UINT_PTR dlgRet = cmdParamDlg.DoModal();
if(dlgRet != IDOK)
销毁模块对话框由系统自动回收,我们不需要手动释放。
2 非模态对话框
CMyDlg * mydlg = new CMyDlg ;
if ( NULL != mydlg )
{
mydlg ->Create(IDD_DLG_PLUGIN_CONSOLE, this);
mydlg ->ShowWindow(SW_SHOW);
}
很显然,需要我们手动释放这个对话框的资源。
根据msdn上的说法:
我们需要重载CMyDlg 这个对话框中的两个函数 OnCancel() 和 PostNcDestroy()
void CMyDlg ::OnCancel()
{
// TODO: Add your specialized code here and/or call the base class
this->DestroyWindow();
//父类的方法不需要再执行
//CDialog::OnCancel();
}
void CMyDlg ::PostNcDestroy()
{
// TODO: Add your specialized code here and/or call the base class
delete this;
return; //直接return 不需要执行父类的PostNcDestroy()
}
设置子对话框的方法
dlg属性设为:
style child
取消 Title Bar
Border none
1 模块对话框
// 创建对话框
CMyDlg mydlg(this);
// 显示对话框
UINT_PTR dlgRet = cmdParamDlg.DoModal();
if(dlgRet != IDOK)
销毁模块对话框由系统自动回收,我们不需要手动释放。
2 非模态对话框
CMyDlg * mydlg = new CMyDlg ;
if ( NULL != mydlg )
{
mydlg ->Create(IDD_DLG_PLUGIN_CONSOLE, this);
mydlg ->ShowWindow(SW_SHOW);
}
很显然,需要我们手动释放这个对话框的资源。
根据msdn上的说法:
我们需要重载CMyDlg 这个对话框中的两个函数 OnCancel() 和 PostNcDestroy()
void CMyDlg ::OnCancel()
{
// TODO: Add your specialized code here and/or call the base class
this->DestroyWindow();
//父类的方法不需要再执行
//CDialog::OnCancel();
}
void CMyDlg ::PostNcDestroy()
{
// TODO: Add your specialized code here and/or call the base class
delete this;
return; //直接return 不需要执行父类的PostNcDestroy()
}
设置子对话框的方法
dlg属性设为:
style child
取消 Title Bar
Border none
相关文章推荐
- VS2010/MFC编程入门之十一(对话框:非模态对话框的创建及显示)
- C++ MFC / VS2013 之十(对话框:非模态对话框的创建及显示)
- VS2010/MFC对话框:非模态对话框的创建及显示
- VS2010/MFC编程入门之十二(对话框:非模态对话框的创建及显示)
- MFC学习笔记之:创建模态对话框和非模态对话框
- <MFC>模态对话框和非模态对话框的创建弹出
- VS2010/MFC编程入门之十一(对话框:非模态对话框的创建及显示)
- VS2013/MFC编程入门之十一(对话框:非模态对话框的创建及显示)
- MFC编程入门之十二(对话框:非模态对话框的创建及显示)
- MFC学习笔记(四)- 模态对话框与非模态对话框的创建与显示
- VS2010/MFC编程入门之十二(对话框:非模态对话框的创建及显示)
- 对话框设置及常用控件,创建模/非模态对话框态对话框(VC_MFC)
- (转载)VS2010/MFC编程入门之十二(对话框:非模态对话框的创建及显示)
- VC++创建个性的对话框之MFC篇
- VS2013 使用MFC创建非模态对话框
- VS2010/MFC对话框:一般属性页对话框的创建及显示
- MFC动态创建对话框中的按钮控件并创建其响应消息
- MFC非模态对话框和模态对话框销毁的方法
- VS2010/MFC编程入门之七(对话框:创建对话框类和添加控件变量)
- vs2008创建一个基于对话框的mfc工程