MFC中调用子对话框的editbox控件时得不到输入的值

我在子对话框里面加入了一个edit控件,绑定的变量是String类型的m_Team_no,
在父对话框里面写了一个函数SaveData();
void CSoccerLab2Dlg::SaveData()
{
if(!m_pRecordset->adoEOF && m_nCurrentSel >= 0 && m_bAutoSave)
{
CDIALOGTeamDlg *dlg;
dlg=new CDIALOGTeamDlg();
dlg->Create(IDD_DIALOGTeam,this);
dlg->GetDlgItem(IDC_EDITTeam_no);
UpdateData(TRUE );
CString str;
dlg->GetWindowText(str);

v_Team_no = str;
//v_Team_Cname = dlg->m_Team_name;
//v_Team_coach = dlg->m_Team_coach;
//v_Team_home = dlg->m_Team_home;
m_pRecordset->PutCollect("Team_no",v_Team_no);
//m_pRecordset->PutCollect("Team_Cname",v_Team_Cname);
//m_pRecordset->PutCollect("Team_coach",v_Team_coach);
//m_pRecordset->PutCollect("Team_home",v_Team_home);
//m_pRecordset->Update();///保存到库中
m_userlist.SetItem(m_nCurrentSel,0,LVIF_TEXT,(_bstr_t)v_Team_no,NULL,0,0,0);
//m_userlist.SetItem(m_nCurrentSel,1,LVIF_TEXT,(_bstr_t)v_Team_Cname,NULL,0,0,0);
//m_userlist.SetItem(m_nCurrentSel,2,LVIF_TEXT,(_bstr_t)v_Team_coach,NULL,0,0,0);
//m_userlist.SetItem(m_nCurrentSel,3,LVIF_TEXT,(_bstr_t)v_Team_home,NULL,0,0,0);

}
}
但是调试发现不管怎么样,str都不能得到在子对话框里面输入的值,一直都显示是0,
真正插入数据库过后,打开数据库发现值是插入进去了,不过都是空白值- -
求问怎么回事呀

4个回答

非模态对话框?怎么没看到你调用showwindow

因为是用了Tap属性页,子对话框通过单击Tab已经显示出来了

lsyhaoshuai
lsyhaoshuai 请问这个最后是怎么解决的,求告知,谢谢!
10 个月之前 回复

调试了看到str的m_pchData显示的值是0x5f4d0b14 “” 0 '' 是什么意思呀 ?
表示这个str并没有值吗 ?

把子对话框生命为父窗口的成员,不然,每次进入SaveData函数,都是重新创建一个子对话框,这样不太好,导致你输入的数据并没有绑定到控件变量中去。可以在子窗口中加个测试,看看子窗口中控件变量是否拿到了输入的数据。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问