MFC 创建模态与非模态对话框

Posted 胡刚2021

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC 创建模态与非模态对话框相关的知识,希望对你有一定的参考价值。

点击跳转到视频教程

1.创建模态对话框









在生成的Button点击事件中加入 创建模态对话框的代码

// IDD_DIALOG1d 代表刚才在资源文件中创建的对话框的ID
CDialog dlg(IDD_DIALOG1);
dlg.DoModal();


运行,点击创建模态对话框按钮,就会创建出来一个模态对话框

如果我们需要在模态对话框中增加一些交互,比如增加一个编辑框,等待用户输入,或者增加一个Button,并添加点击事件等。这时候,就需要对刚才我们创建的模态对话框进行绑定类。

给模态动画框绑定类


改变原来的文件中的Button点击事件


运行后发现还是和原来一样,但是我们现在可以在这个我们自定义的对话框中添加我们想要的交互操作。

下面实现在创建的模态对话框中,添加一个编辑框,并且给CMyDialog添加 在点击创建模态对话框按钮后,在的


在生成的函数中添加对话框显示的文字


虽然看着有报红,但是不要担心,可以运行成功。

运行结果

2.创建非模态对话框










运行结果:

这里还有第二种写法

以 new 的方式,把模态对话框对象放在函数中创建

下面来消除 new CMyNotModalDialog 造成的内存泄露


添加点击非模态对话框右上角×号的处理


添加销毁窗口的代码

之前虽然点击❌号、取消和确定都会销毁窗口,但是它不是调用DestroyWindow这个函数做到的,所以有必要加上这样的处理

添加点击非模态对话框中确定按钮的处理


以上是关于MFC 创建模态与非模态对话框的主要内容,如果未能解决你的问题,请参考以下文章

MFC 模态对话框与非模态对话框

如何创建一个模态的对话框

模态与非模态对话框

模态与非模态对话框

模态对话框与非模态窗口

VS2017 MFC应用中添加模态对话框时为其添加类弹出如下错误