用户名: 密   码:
   飞诺网 加入收藏
飞诺网 软件编程 C C++ Java VB Delphi Foxpro 汇编语言 游戏开发 移动开发 软件工程师 软工与管理 VC shell编程 C# python Matlab 开发工具
C++系列教程 C++实例 C++技术文档 C++/C语言函数 Mangos QT Boost Opencv

您当前的位置:飞诺网 >> c/c++ >> C++技术文档

什么是模态对话框,什么是非模态对话框

www.diybl.com    时间 : 2012-01-10  作者:网络   编辑:hawk 点击:   [ 评论 ]



从个人非常简单的理解就是:模态对话框,只能执行当前弹出的对话框。非模态对话框,既可以执行当前弹出的对话框,也可以执行其他对话框。首先利用MFC向导建立一个基于对话框的工程:TestDlg, 然后分别插入两个不同对话框:IDD_DIALOGONE和

IDD_DIALOGTWO,并利用类向导关联起不同的类:CTestOne和CTestTwo,接着就在主对话框添加两个不同的按钮,才能实现点击按钮弹出对话框,即弹出模态对话框或者非模态对话框。

模态对话框按钮响应函数:

 void CTestDlgDlg::OnButtonOne()
{
 
 CTestOne dlg;
 dlg.DoModal(); //模态对话框
}

非模态对话框按钮响应函数:

void CTestDlgDlg::OnButtonTwo()
{
   CTestTwo *pdlg=new CTestTwo;
   pdlg->Create(IDD_DIALOGTWO,this);
   pdlg->ShowWindow(SW_SHOW);
}

分析:
 CTestDiaLog *pdlg=new CTestDiaLog;  //非模式对话框,

不能定义局部变量dlg,在视类里的析构函数里调用delete函数来释放这个指针变量所指向的那块内存
 pdlg->Create(IDD_DiaLogOne,this);
 pdlg->ShowWindow(SW_SHOW); //非模式对话框,必须调用ShowWindow函数来显示对话框

如果图片或页面不能正常显示请点击这里
C++技术文档推荐文章

文章评论