请问怎么在关闭子窗体的同时把父窗体也关了

解决方案 »

  1.   

    GetParent()->PostMessage(WM_CLOSE);
      

  2.   


    那如果重新启动父窗体呢?用这个关闭了之后,再DoModal()的时候出错了。
      

  3.   

    在子窗口的OnDestry中
    GetParent()->DestroyWindow();
      

  4.   

    那如果重新启动父窗体呢?用这个关闭了之后,再DoModal()的时候出错了。
    ==>
    DoModal之前,要判断一下GetSafeHandle()是不是null,否则要创建.
    看你的意思不是真的要关闭,只是要隐藏,那就发个隐藏消息.WM_SHOWWINDOW,SW_HIDE,
      

  5.   


            this->GetParent()->PostMessage(WM_CLOSE);
    OnOK();

    //popup main window
    CMainDlg dlg = new CMainDlg();
    dlg.DoModal(); 
      

  6.   


    Yes,或者说怎么让父窗体重启
      

  7.   

    你的父窗口还是DoModal的?
    如果是这样会比较麻烦
    我随便写段代码说明我的意思吧
    //调用父窗口
    CYourDlg yourDlg
    while(yourDlg.DoModal()!=IDOK);///////////////////////////////////////////父窗口内的一个子窗口退出时GetParent()->EndModalLoop(0);
      

  8.   

    发向主消息循环postmessage(NULL.....);
      

  9.   

    CreateProcess(NULL, GetCommandLine(),....);   //再次运行
      

  10.   

    我在子窗体这样写会出错void CResultDlg::OnBnClickedRestart()
    {
    this->GetParent()->EndModalLoop(0);
    OnOK();

    //popup main window
    CMainDlg dlg = new CMainDlg();
    dlg.DoModal(); 
    }