CListCtrl *pL=NULL;
pL = &dlg.m_ListCtrl;//对话框中的ListCtrl的句柄hWnd=00000000 ************
pL->GetItemCount();//出错   ******************
对话框都已经结束了,其list control当然无效啦。

解决方案 »

  1.   

    有时这样的代码是有效的:
    CMyDlg dlg; 
    dlg.DoModal();//对话框显示正常,CListCtrl也正常
    strDataFee=dlg.m_strFeeName;
    strDataFee是可以获得其值的!难道ListCtrl控件在对话框窗口销毁时,ListCtrl里面保存的数据也不复存在了?
      

  2.   

    m_ListCtrl 是CListCtrl型,绑定于windows对象,对话框窗口销毁也随之句柄无效....不同于
    dlg.m_strFeeName一般的成员变量(C++对象)可以把模式改为非模式的
      

  3.   

    原来的程序在dlg.DoModal之后,对话框中的变量等已经析构了。
    这时最好new一个出来,这样才可以得到相关的内容CMyDlg *pdlg = new CMyDlg; 
    if ( pdlg == NULL )
    {
    }
    pdlg->DoModal();
    CListCtrl *pL=NULL;
    pL = &(pdlg->m_ListCtrl);
    pL->GetItemCount();delete pdlg;