CTestDlg *pDlg = (CTestDlg *)this->GetParent();
CString temp;
for (int i=0; i<pDlg->list_type.GetSize(); i++)
{
temp = pDlg->list_type.GetAt( i ).szType;
this->m_types.AddString( temp );//debug到这里..就报错..然后强制退出..提示头文件的..afxwin2.inl Line:741 有错误.
}
不经常用非模态的窗口.. 遇到这个问题..google了下. 说是没有初始化..尝试了 m_types.ResetContent() , 在窗口的初始化函数中预先Add了个信息..都不行.是不是内存不足造成? 还是别的..郁闷死了..Help...

解决方案 »

  1.   

    非模态的窗口一定要调用了Create函数之后,
    才可以对非模态窗口的控件操作.
    看你这个代码是没问题.你上面的代码是不是非模态的窗口A的一个函数b啊,
    然后在A* pDlg=new A;
         pDlg->b();
         pDlg->Create(...);
    如果是这样的话肯定错.
    调整一下顺序就可以了
     pDlg->Create(...);
    pDlg->b();
      

  2.   

    应该是你的 m_types这个窗口没有初始化!建议初始化一下!
      

  3.   

    在CTestDlg里写自定义消息, 用来获取list_type的值.  另:此时的非模态窗口还是CTestDlg的子窗口?在非模态对话框调用m_types之前看看HWND, 按顺序检查m_types操作过的代码.
      

  4.   

    原来如此..我把我的代码写在 OnInitDialog() 初始化方法中了.....居然会错哟...- -!!