Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1207892
  • 博文数量: 181
  • 博客积分: 6155
  • 博客等级: 准将
  • 技术积分: 1805
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-05 09:24
文章分类

全部博文(181)

文章存档

2015年(2)

2014年(3)

2013年(9)

2012年(29)

2011年(30)

2010年(36)

2009年(40)

2008年(32)

分类: C/C++

2011-12-26 15:49:46

从个人非常简单的理解就是:模态对话框,只能执行当前弹出的对话框。非模态对话框,既可以执行当前弹出的对话框,也可以执行其他对话框。首先利用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函数来显示对话框

阅读(2347) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~