欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > MFC中如何创建一个非模态对话框

MFC中如何创建一个非模态对话框

2025/2/24 2:56:10 来源:https://blog.csdn.net/XZHOUMIN/article/details/144337090  浏览:    关键词:MFC中如何创建一个非模态对话框

对话框是编程中常用的一个控件,非模态对话框与用户交互更加友好,用户不必关闭对话框就能进行其他操作,比如拷贝黏贴,对比数据,执行其他命令。

由于无模态对话经常使用,且用法类似,因此我把它写成了一个类,每次只要继承即可使用非模态对话框,不再重复做哪些繁琐的操作。

下面以具体实例讲解,如何使用这个类。
首先使用VS2022创建一个MFC的工程。
在这里插入图片描述
因为只是演示对话框的使用,因此我们直接用向导的默认值直接生成工程
在这里插入图片描述
运行效果是这样:
在这里插入图片描述
将非模态对话框类的两个文件拷贝到工程中,并加入到解决方案。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
继承自CModelessDlg
修改包含的头文件
在这里插入图片描述
添加一个对话框资源,名称改为:IDD_CModelessDlg
这个对话框就是以后你需要给用户展示用的。在这里插入图片描述
找一个可以调用此对话的地方演示效果,就在菜单中吧,加一个菜单项

在这里插入图片描述
添加事件处理程序:
在这里插入图片描述
增加实际调用代码:

#include "CTestM.h"
void CMFCApplication8App::On32771()
{BOOL bResult = FALSE;CTestM *pDlg = new CTestM;ASSERT_VALID(pDlg);bResult = pDlg->Create(CTestM::IDD);pDlg->ShowWindow(SW_SHOW);
}

最后效果如下:
在这里插入图片描述
不需要考虑指针释放,不需要考虑多次调用,这些都已经在非模态对话框已经都做好了。

源代码件见绑定的资源

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词