下面代码中listShow是一个CListCtrl错误是:debug assertion Failed
program:....exe File ...winctrl2.cpp Line 540请问这是什么原因?
listShow.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
listShow.SetBkColor(RGB(247,247,255));
listShow.SetTextColor(RGB(0,0,255));
listShow.SetTextBkColor(RGB(247,247,255)); listShow.InsertColumn(0,LPCTSTR(TEXT("ID")),LVCFMT_LEFT,80);
listShow.InsertColumn(1,LPCTSTR(TEXT("名字")),LVCFMT_LEFT,100); listShow.InsertItem(0,LPCTSTR(TEXT("1")));
listShow.SetItemText(0,1,LPCTSTR(TEXT("Enzo")));//加上这个语句运行时就出错了
         //没加上那句话运行时不出错但是,列表空间中只是出现了两个空白行 listShow.InsertItem(1,LPCTSTR(TEXT("2")));

解决方案 »

  1.   

    1、检查CList控件是否为Report样式
    2、有可能你InsertItem没有成功
    listShow.InsertItem(i,"1");
    listShow.SetItemText(0,1,"Enzo")));//
      

  2.   

    更正:
    listShow.InsertItem(0,"1");
      

  3.   

    谢谢各位,我找到原因了,是因为我把所有者数据设为true了,运行时库说是不可以这样的
    BOOL CListCtrl::SetItemText(int nItem, int nSubItem, LPCTSTR lpszText)
    {
    ASSERT(::IsWindow(m_hWnd));
    ASSERT((GetStyle() & LVS_OWNERDATA)==0); //<----这里
    LVITEM lvi;
    lvi.iSubItem = nSubItem;
    lvi.pszText = (LPTSTR) lpszText;
    return (BOOL) ::SendMessage(m_hWnd, LVM_SETITEMTEXT, nItem, (LPARAM)&lvi);
    }
      

  4.   

     ASSERT(::IsWindow(m_hWnd));
    我的是在这里弹出错误了, 怎回事?