想把子对话框上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是随选择项而变化的
}
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是随选择项而变化的
}
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值不同?
m_nResIndex = m_comboBox.GetCurSel(); 该行代码是执行到的,而且也能得到我要的选项,但m_nIndex与OnCbnSelchangeCombo1中得到的m_nResIndex值不同
{
CWaveInfoDlg WaveDlg();
if(IDOK == WaveDlg.DoModal())
{
UpdataData();
m_nIndex = WaveDlg.m_nResIndex; //出错??? WaveDlg.m_nResIndex的值没有变化,
}
}你构造一个 CWaveInfoDlg对象,后面还加个括号是啥意思?直接CWaveInfoDlg WaveDlg试试
改了后还是不行。
{
CWaveInfoDlg WaveDlg;
if(IDOK == WaveDlg.DoModal())
{
UpdataData();
m_nIndex = WaveDlg.m_nResIndex; //出错??? WaveDlg.m_nResIndex的值没有变化,
}
}对话框已经关闭 !
肯定是很简单的原因,只是你没搞清楚
你的UpdataData();
就是想更新这个控件变量吧?
在OK中把控件变量赋值给窗口控件无关的变量