问题1:主对话框两个按钮 其中按钮2被禁用。通过按下按钮1按钮弹出子对话框1 
请问:怎么样通过子对话框1界面中的确定按钮使主对话框上的button2(即按钮2)可用(即不被禁用)。我尝试在子对话框1的确定按钮中添加: CButton* pBtn=(CButton*)GetDlgItem(IDC_BUTTON2);
                        pBtn->EnableWindow(TRUE);
但是还是无效。请问你该在确定按钮中添加什么代码?

解决方案 »

  1.   

    按钮2是主对话框上的,那应该是 
    CWnd *pBtn=AfxGetApp()->m_pMainWnd->GetDlgItem(IDC_BUTTON2);pBtn->EnableWindow(TRUE);
      

  2.   

    方法一:
    在你的对话框1中重载OnOk(双击那个OK按钮)
    添加如下代码void COtherDlg::OnBnClickedOk()
    {
    // TODO: 在此添加控件通知处理程序代码
    CDemoDlg *pDlg = (CDemoDlg*)AfxGetApp()->GetMainWnd();
    pDlg->GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
    CDialogEx::OnOK();
    }方法二 在主对话框中添加void CDemoDlg::OnBnClickedButton1()
    {
    // TODO: 在此添加控件通知处理程序代码
    COtherDlg dlg;
    if (dlg.DoModal()==IDOK)
    {
    GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
    }
    }
      

  3.   

    CXXXDlg *pDlg = (CXXXDlg *)AfxGetMainWnd();
    ((CButton *)pDlg->GetDlgItem(IDC_BUTTON2))->EnableWindow(TRUE);
    CXXXDlg是你的主对话框类
      

  4.   

    CButton* pBtn=(CButton*)(this->GetParent()->GetDlgItem(IDC_BUTTON2));
    pBtn->EnableWindow(TRUE);这样试试
      

  5.   

    CWnd* pParent = GetParent();
    ASSERT(pParent);
    pParent->GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
      

  6.   

    void Bk::OnOK() 
    {CWnd* pParent = GetParent();
    ASSERT(pParent);
    pParent->GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
    CDialog::OnOK();}
    Bk是子对话框类名  但是还是不能式被禁用的主对话框上的BUTTON2激活(即可以按下去工作)
      

  7.   

    试过你的方法 但是还是不能式被禁用的主对话框上的BUTTON2激活(即可以按下去工作) 还需要添加别的什么代码?  求助
      

  8.   

    CWnd *pBtn=AfxGetApp()->m_pMainWnd->GetDlgItem(IDC_BUTTON2);