想把子对话框上combobox控件的选择项传递给主窗口,做法如下:CWaveParaView   //  CWaveParaView:pulic CFormView  父窗口WaveParaView.h 
int  m_nIndex;  //  m_nIndex为CWaveParaView类的成员变量
 
WaveParaView.cppvoid CWaveParaView::OnSetPara()
{
   CWaveInfoDlg WaveDlg();
   if(IDOK == WaveDlg.DoModal())
   {
      UpdataData();     
      m_nIndex = WaveDlg.m_nResIndex;          //出错??? WaveDlg.m_nResIndex的值没有变化,
   }
}
CWaveInfoDlg:public CDialog    子对话框,点击菜单弹出WaveInfoDlg.h
CBomboBOX  m_comboBox;    //组合框关联变量
int        m_nResIndex;WaveInfoDlg.cpp
void CWaveInfoDlg::OnCbnSelchangeCombo1()
{
  m_nResIndex = m_comboBox.GetCurSel();         //此处m_nResIndex是随选择项而变化的
}

解决方案 »

  1.   

    你写UpdataData();   的目的是什么呢?
    void CWaveInfoDlg::OnCbnSelchangeCombo1()

      m_nResIndex = m_comboBox.GetCurSel(); //此处m_nResIndex是随选择项而变化的
    }这段代码执行到了吗?调试得到的m_nResIndex值是多少?
    if(IDOK == WaveDlg.DoModal())
      { 
      m_nIndex = WaveDlg.m_nResIndex; //出错??? WaveDlg.m_nResIndex的值没有变化,
      }
    这时候得到的m_nIndex与OnCbnSelchangeCombo1中得到的m_nResIndex值不同?
      

  2.   


    m_nResIndex = m_comboBox.GetCurSel();  该行代码是执行到的,而且也能得到我要的选项,但m_nIndex与OnCbnSelchangeCombo1中得到的m_nResIndex值不同
      

  3.   

    void CWaveParaView::OnSetPara()
    {
      CWaveInfoDlg WaveDlg();
      if(IDOK == WaveDlg.DoModal())
      {
      UpdataData();   
      m_nIndex = WaveDlg.m_nResIndex; //出错??? WaveDlg.m_nResIndex的值没有变化,
      }
    }你构造一个 CWaveInfoDlg对象,后面还加个括号是啥意思?直接CWaveInfoDlg WaveDlg试试
      

  4.   

    不好意思写错了,是CWaveInfoDlg WaveDlg, 
    改了后还是不行。
      

  5.   

    void CWaveParaView::OnSetPara()
    {
      CWaveInfoDlg WaveDlg;
      if(IDOK == WaveDlg.DoModal())
      {
      UpdataData();   
      m_nIndex = WaveDlg.m_nResIndex; //出错??? WaveDlg.m_nResIndex的值没有变化,
      }
    }对话框已经关闭 !
      

  6.   

    对话框类的OnOK有没有做什么事情呢?
    肯定是很简单的原因,只是你没搞清楚
      

  7.   

    WaveDlg.m_nResIndex必须是一个与窗口控件无关的变量。
    你的UpdataData();   
    就是想更新这个控件变量吧?
    在OK中把控件变量赋值给窗口控件无关的变量