在对话框的OnOK事件里,我想显示我做的另外的一个对话框,如下:
void CBbbDlg::OnOK() 
{
zzzDlg jjj;
jjj.Create (IDD_DIALOG1);
jjj.ShowWindow (SW_SHOW);

}虽然显示了对话框,但马上该对话框就退出来了。如何解决这个问题。谢谢。

解决方案 »

  1.   

    用非模式对话框当然不行了。因为jjj的生命期在OnOK函数中。如果用非模式的 。程序ShowWindow后继续向下执行。当OnOK执行完毕后,jjj对象也会被释放的。对话框自然就没有了。
    一种方式是用模式对话框。DoModal调用。
    至于别的方法,要看你的具体需求了
      

  2.   

    这就是一个局部变量的问题了,由于使用的是非模式调用,当jjj出了函数OnOK之后,该变量被自动析构了,所以不能长久的显示出来
      

  3.   

    将zzzDlg jjj;放在CBbbDlg类中定义,即将jjj作为CDbbDlg的一个数据成员,然后在OnOk中加入下面代码:jjj.Create (IDD_DIALOG1);
    jjj.ShowWindow (SW_SHOW);
      

  4.   

    声明成成员变量,在Oncreate里面Create (IDD_DIALOG1);
    只要在OnOK() 里面jjj.ShowWindow (SW_SHOW);
    是临时变量,会在onok结束后释放