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

  1. 用向导创建一个单文档应用程序,然后再插入一个对话框。
  2. 为该对话框关联一个类(注意:在MFC中,对资源的操作是对一个类来完成的),为了能在该程序中打开此对话框,就像ABOUT对话框一样,就必须有一个打开对话框的事件,我们可以新建一个菜单,从菜单中打开此对话框。
  3. 在菜单中资源添加一个菜单,用AppWizard向导为该菜单添加一个消息响应函数。然后在该函数中写弹出对话框的代码。
  4. 创建一个模态对话框:
    先为对话框类声明一个对象,如CTest dlg;
    注:此时需要在该文件前面加上CTest类的头文件“Test.h”。
    因为在该文件中,程序不能识别CTest是什么,CTest的定义在“Test.h"中。
    调用DoModal()函数即可。
    dlg.DoModal();
  5. 创建一个非模态对话框:
     CTest *pdlg=new CTest();
     pdlg->Create(IDD_DIALOG1,this);
     pdlg->ShowWindow(SW_SHOW);             //没有这句话对话框将不会显示
    注:若将第一句写成CTest dlg将不会显示,因为dlg为一个局部变量,当函数执行完后就被销毁了。在模态对话框中则不同,程序执行到DoModal()时就暂停了,所以模态对话框在关闭之前不允许程序执行其它操作,而非模态对话框在没关闭之前允许程序执行其它操作。

你可能感兴趣的:(MFC创建模态对话框和非模态对话框)