我定义了两个对话框类,主对话框是CzipDlg,从对话框为CShowList
在从对话框中引入了一个ListControl控件,控件变量为m_ListContrl.现在程序的要求在主对话框(注意:ListControl在从对话框中)中对m_listContrl进行一些列设置。然后在DoModal出从对话框。程序这样写的
void CZipDlg::OnMenuDistill() 
{
。。
。。
   CShowList dShowList;
   
   dShowList.m_ListContrl.InsertItem(0,"张学友");//这种写法对吧?一运行到此处就出错

   dShowList.m_ListContrl.InsertItem(0,"123");
   dShowList.m_ListContrl.InsertItem(0,"456");
   dShowList.DoModal();//输入完数据然后打开从对话框
。。
。。
}为什么一运行到往从对话框的控件变量时候就弹出对话框说Debug Assertion Failed!,,,,,,,,???请帮助。thx

解决方案 »

  1.   

    在对话框没有DoModal前,是不存在的,控件也没创建,所以不能访问 .将初始化控件的代码移到. 对话框的 OnInitDialog 里
      

  2.   

    楼上说的原理我明白,但是我的初始化写在主对话框的OnInitDialog 里面也不对,原因恐怕也是楼上说的原因。所以我把初始化控件的程序写在了从对话框的OnInitDialog 函数里面。我不想把所有的变量都写成全局变量,只想通过主对话框把值传到从对话框中。求解决方法。thx
      

  3.   

    你可以在从对话框中定义string类型数组,调用domodal之前将字符串传进来