MFC基本对话框类型中,如何在子窗口对主窗口上的控件进行数据更新

2024-12-18 10:43:13
推荐回答(2个)
回答1:

列表控件的添加,不是使用SetDlgItemText()方式的。
另外,你这是对话框值传递的问题。可以使用更简单的方法,而不是使用GetParent()获取父窗口的句柄!
方法是:
在void CShangweijiDlg::OnTianjia_Dele_Room() 响应函数中
void CShangweijiDlg::OnTianjia_Dele_Room()
{
CTianJia_Delet TianjiaDelet_room;
if(IDOK==TianjiaDelet_room.DoModal()) //TianjiaDelet_room窗口按下IDOK键。即确定按纽
{
((CListBox *)GetDlgItem(IDC_LISTROOM))->AddString(TianjiaDelet_room.m_TianjiaDeletRoom);//将子对话框成员变量m_TianjiaDeletRoom的值添加到IDC_LISTROOM控件的结尾。
}
}
在子对话框的void CTianJia_Delet::OnOK_TianjiaRoom() 函数中
{
UpdateData();//将值更新到关联变量中m_TianjiaDeletRoom,这里假设你的编辑框IDC_EDIT_Room关联了变量m_TianjiaDeletRoom
CDialog::OnOK();
}

回答2:

你首先要明确一点:
这个程序代码,你是在cmycubeview的成员函数中,这个是对话框?idc_edit1是属于cmycubeview还是cmynewdlg?
如果属于cmynewdlg,那么在domodal之后,是不能这样调用的,getdlgitem(idc_edit1)->getwindowtext(ch1);只能放在对话框的onok里面,并且通过类成员变量保存,并在domodal之后,通过dlg.strxxx形式来获取。