void CTestDlg::OnDblclkList() 
{
// TODO: Add your control notification handler code here
CString str;
int index;
index = m_listbox.GetCurSel();
m_listbox.GetText(index,str);
if(MessageBox(str,"乡镇选择",MB_OKCANCEL)==1)
{
CDlg Dlg;
Dlg.DoModal();
Dlg.m_str = str;
Dlg.m_edit=str;//m_edit是我与CDlg对话框中的一个editbox关联的变量。
Dlg.UpdateData(FALSE);
}
}
我的本意是,通过这个函数创建一个对话框,并且在Dlg中的editbox中显示str这个字符串。
但运行后,对话框可以创建,但是editbox中无显示。且我点击对话框右上角的关闭按钮报错。
请高手指教!

解决方案 »

  1.   

    Dlg.m_edit=str;不会执行的,呵呵
      

  2.   

    m_listbox.GetText(index,str); 
    Dlg.m_edit=str;//m_edit是我与CDlg对话框中的一个editbox关联的变量。 if(MessageBox(str,"乡镇选择",MB_OKCANCEL)==1) 

    CDlg Dlg; 
    Dlg.DoModal(); 
    Dlg.m_str = str; } 换个顺序
      

  3.   


    调整下顺序CDlg Dlg;
    Dlg.m_str = str;
    Dlg.m_edit=str;//m_edit是我与CDlg对话框中的一个editbox关联的变量。
    Dlg.UpdateData(FALSE); 
    Dlg.DoModal();
      

  4.   

    Dlg.DoModal();后就不能执行:Dlg.m_edit=str;//m_edit是我与CDlg对话框中的一个editbox关联的变量。和 
    Dlg.UpdateData(FALSE); 了吗?
      

  5.   

    我知道了Dlg.DoModal();就阻塞了,后面的不会执行了。
      

  6.   

    CDlg Dlg; 
    Dlg.m_str = str; 
    Dlg.m_edit.SetWindowText(str);//m_edit是我与CDlg对话框中的一个editbox关联的变量。 
    Dlg.UpdateData(FALSE); Dlg.DoModal(); 
      

  7.   

    抱歉,#8楼错了。Dlg.m_edit = str;