我新建一个大的基于DIALOG的程序,去掉界面上的CANCEL,按OK后弹出另一个DIALOG两个DIALOG为别为两个不同的类,然后我要用第二个DIALOG上的OK按钮来退出程序,应该怎么实现?

解决方案 »

  1.   

    在第二个对话框的OK中:
    ::PostMessage(hWndFirst, WM_QUIT, 0, 0);
    其中hWndFirst为第一个对话框的句柄
      

  2.   

    void CFuckDlg::OnButton1() 
    {

    if(bbb.DoModal()==IDOK)
    {
    OnOK();
    }

    }
    其中CFuckDlg是主的dialog
    bbb是从的dialog.
      

  3.   

    记住大Dialog的句柄,然后在处理第二个对话框的OK消息时DestroyWindow它就可以了
      

  4.   

    实际上,当按第一个对话框的OK按钮(建对话框时默认的),第一个对话框会退出的。但你用它来起动第二个对话框,即在OnOK函数中
    yourdlg_2.DoModel();
    在第二个对话框未退出前,第一个对话框的OnOK函数一直停留在上述语句,当第二个对话框退出后,才会继续往下执行,那么也就是就,不用进行太多的处理,让第一个对话框的程序继续运行下去就会退出。
      

  5.   

    学习!CWnd* GetParent( ) const;PostMessage(GetParent( ) , WM_QUIT, 0, 0);
      

  6.   

    我在第二个窗口中单用了
    {
        DestroyWindow();
    }可以关闭,但会有出错信息
      

  7.   

    以上的都不简单
    给个最好的,无论几个窗口都能用的
    void CDialog::OnOK() 
    {
    AfxGetMainWnd()->DestroyWindow();
    }
    保证无错误退出
      

  8.   

    CWnd* GetParent( ) const;PostMessage(GetParent( ) , WM_QUIT, 0, 0);
    agree