声明:本人一个菜鸟,网上搜罗了很多关于VC++编程的资料,可每本资料都是涵盖面太广,难以细致。英语又太烂,所以不得意只得摸索,恐又忘记所以记在此处,若有不对的地方,烦劳指出,不胜感激。
author:[email protected]
license:GPL
IDE:Visual Studio 2008
内容:点击dlg的Model,可以产生一个模态对话框;当点击Modelless可以产生一个非模态对话框
1、新建一个基于对话框的应用程序dlg,参考http://blog.csdn.net/fym0121/article/details/7491192,然后,向上面添加两个按钮,命名为Model和Modelless
2、在资源视图下,展开项目,右键Dialog --> 插入Dialog,会发现插入了一个对话框,默认ID是IDD_DIALOG1。对它略做修改,如上图SubDlg所示
3、为新加对话框添加类
在资源视图中,双击SubDlg的空白地方,会出现MFC类向导,类名我们输入CAliceDlg,这样我们就为这个新建的对话框关联了一个类。在类视图中,你会发现多了一个CAliceDlg
4、在资源视图中,双击IDD_DLG_DIALOG,会看见dlg对话框,双击Model按钮,为其添加事件处理程序
void CdlgDlg::OnBnClickedButton1() { CAliceDlg alice; //注意头文件 alice.DoModal(); //模态对话框,程序流程会停留在此处,直至对话框销毁 }
1、在资源视图中,双击IDD_DLG_DIALOG,会看见dlg对话框,双击Modelless按钮,为其添加事件处理程序
void CdlgDlg::OnBnClickedButton2() { CAliceDlg *alice = new CAliceDlg(); //此处,不能使用CAliceDlg alice;因为当这个函数执行完后,局部变量会被销毁 alice->Create(IDD_DIALOG1); alice->ShowWindow(SW_SHOWNORMAL); }