比如按的是OK键,(不是OK键你可以设置一个变量)CDialog1 dlg1;
CDialog2 dlg2;
if(dlg1.DoModal()==IDOK)
{
  dlg2.DoModal();
}

解决方案 »

  1.   

    非模式对话框不占有输入焦点,楼上的说的很容易就实现了,ShowWindow()就可以了
      

  2.   

    CDialog1 dlg1;
    CDialog2 dlg2;
    if(dlg1.DoModal()==IDOK)
    {
      dlg2.DoModal();
      隐藏dlg1
    }
    我觉得最好使用modeless dialog
    上面的代码作一些变化
      

  3.   

    显示对话框时用ShowWindow(SW_SHOW),隐藏时用ShowWindow(SW_HIDE).但对话框在建立时要用Create
      

  4.   

    你可以重载你的OnOk()消息。
    在里面,DoModal()你的第二个对话框呀
      

  5.   

    if (dlg1.DoModal())
    {
       if (dlg2.DoModal())
       {
          if (dlg3.DoMdal())
          ......
       }
    }这样不行吗?
      

  6.   

    To forrest2001(石林) :
    dlg1.DoModal()==IDOK//此时dlg1已经不见,不再需隐藏dlg1它挺好用的,又简单
      

  7.   

    没必要非使用非模式对话框不可。
    在第一个对话框里:
    CDialog1::OnButton()
    {
        CDialog2 dlg;
        ShowWindow(SW_HIDE);
        dlg.DoModal();
        ShowWindow(SW_SHOW);
    }
      

  8.   

    那要看你的目的是什么了,是要先暂时隐藏对话框呢,还是彻底Destroy掉。
      

  9.   

    如果是要在显示第二个对话框的时候,Destroy掉第一个,最简单的做法:
    在第一个对话框里:
    CDialog1::OnButton()
    {
        CDialog2 dlg;
        ShowWindow(SW_HIDE);
        dlg.DoModal();
        CDialog::OnOK();
    }