我建了3个对话框,分别有一个Button,A---->B----->C,我想点C上的Button使其返回到A,就是自动关闭B,我建的对话框都是模态对话框,我用了以下代码:
void  Ccdlg::OnBnClicked()
{
OnCancel();
CWnd *pWnd;
pWnd=GetParent();
pWnd->ShowWindow(SW_SHOW);//用来得到父级对话框;
Cbdlg myclose;
myclose.OnClose();//用来调用关闭父级对话框}
我是C++新手,求指导。
这种生成没问题,调试的时候总是说出现断点,求指导,求代码

解决方案 »

  1.   

    在C的Button的BN_CLICKED响应函数中PostMessage(WM_CLOSE)消息到父窗口来关闭B对话框
      

  2.   

    void Ccdlg::OnBnClicked()
    {
      OnCancel();
      this->GetParent()->PostMessage(WM_CLOSE,0,0);
    }
      

  3.   

    不要采用跨父窗口发送消息的方法,这样会破坏程序整体结构,代码可读性降低
    你的要求其实很容易实现啊// C对话框
    void Ccdlg::OnBnClicked()
    {
        EndDialog(IDCANCEL);
    }// B对话框
    void Cbdlg::OnBnClicked()
    {
        Ccdlg dlg;
        if(dlg.DoModal() == IDCANCEL)  // 如果C关闭,就关闭自己
            EndDialog(IDCANCEL);
    }