非模态对话框
用MFC可以创建非模态的对话框,只是创建方式不同,模态对话框用 dlg.DoModel()调用,而非模态对话框要用create函数创建调用。
/*假设IDD_TEST_DLG为已经定义的对话框资源的ID号*/
CTestDlg *dlg=new CTestDlg;
dlg->Create(IDD_TEST_DLG,NULL);
dlg->ShowWindows(SW_SHOW);
在上面的代码中我们新生成了一个对话框对象,而且在退出函数时并没有销毁该对象。因为如果此时销毁该对象(对象被销毁时窗口同时被销毁),而此时对话框还在显示就会出现错误。那么这就提出了一个问题:什么时候销毁该对象。可以用如下方法:
在对话框退出时销毁自己:在对话框中重载OnOK与OnCancel在函数中调用父类的同名函数,然后调用DestroyWindow()强制销毁窗口,在对话框中映射WM_DESTROY消息,在消息处理函数中调用delete this;强行删除自身对象。相关代码如下:
void CTestDlg1::OnOK()
{
CDialog::OnOK();
DestroyWindow();
}
void CTestDlg1::OnCancel()
{
CDialog::OnCancel();
DestroyWindow();
}
void CTestDlg1::OnDestroy()
{
CDialog::OnDestroy();
delete this;
}
分享到:
相关推荐
MFC创建模态对话框和非模态对话框实例小程序,学习如何在程序开发中使用模态对话框和非模态对话框
点击运行弹出一个对话框,点击DIALOG1按钮弹出一个模态对话框,在该对话框的编辑框输入文本点击确定该对话框消失且输入的文本被显示到主对话框MainDialog中,点击DAILOG2按钮弹出一个非模态对话框,操作现象和模态...
基于vs2005,在ObjectARX中使用MFC:模态,非模态对话框
弹出子对话框,在子对话框特定位置,显示非模态对话框,对话框之间的数据传递
对非模式对话框常常感到困惑的新手程序员,如果您记住几个漂亮的小动作,然后编程非模式对话框,将非常简单。
MFC中经常会用到弹出模态或非模态对话框,模态对话框与非模态对话框容易混淆
MFC模态与非模态对话框的创建有截图详细步骤
非模态对话框与模态对话框不同,在非模态对话框活动的同时,用户还可以在应用程序的其他地方工作,而模态对话框在其关闭之前,用户不能在同一个应用程序的其他地方工作。本代码将从主框架窗口创建一个简单的非模态...
MFC中有两种类型的对话框:模态对话框和非模态对话框。 模态对话框是指当其显示时,程序会暂停执行,直到关闭这个模态对话框后,才能继续执行程序中其他任务。非模态对话框是指当其显示时,允许转而执行程序中其他...
MFC 加法计算器 + 非模态对话框 完整工程演示代码下载 MFC 加法计算器 + 非模态对话框 完整工程演示代码下载 MFC 加法计算器 + 非模态对话框 完整工程演示代码下载 MFC 加法计算器 + 非模态对话框 完整工程演示...
VS2010/MFC模态对话框和非模态对话框的创建和使用
MFC 加法计算器 + 向导对话框+非模态对话框 完整工程演示代码下载 MFC 加法计算器 + 向导对话框+非模态对话框 完整工程演示代码下载 MFC 加法计算器 + 向导对话框+非模态对话框 完整工程演示代码下载 MFC 加法...
MFC 加法计算器+属性页对话框+非模态对话框 完整代码下载 MFC 加法计算器+属性页对话框+非模态对话框 完整代码下载 MFC 加法计算器+属性页对话框+非模态对话框 完整代码下载 MFC 加法计算器+属性页对话框+非模态...
本人搜寻的一些资料,学习了MFC非模态下的主从对话框数据传输,把自己心的做法写出来供大家指点,资料+代码
主对话框单击事件里使用多线程创建对话框B,正常情况见B对话框都是闪现一次,无法长期停留。本代码利用MSG防止了此现象的发生,适合初学多线程的新手。
在MFC中对话框有两种形式,一个是模态对话框(model dialog box),一个是非模态对话框(modeless dialog box)。本文对此分别简述其创建方法。 一、模态对话框(model dialog box) 在程序运行的过程中,若出现了...
VS2010创建模态对话框非模态对话框的方法,给子窗口传值,非模态对话框给父窗口传值,非模态获取父窗口的指针,打开非模态对话框不重复
众所周知的,MFC中非模态对话框在显示后,程序其他窗口仍能正常运行,可以响应用户输入,还可以相互切换。本文就来给大家讲解一下非模态对话框的实现方法: 一、非模态对话框的对话框资源和对话框类 实际上,模态...
基于MFC向导实现的模态对话框和非模态对话框的代码,程序是基于vs2013写的,可以完美运行,适合新手学习,大佬请忽略!