我在插入的时候调用了DeleteAllItems()然后再调用InsertItem()插入数据就不显示数据了。
把DeleteAllItems()注释掉之后就可以显示了。
用UpdateWindow()强制跟新也不行,不知道为什么?
怎么解决?

解决方案 »

  1.   

    m_List.InsertColumn()
    不是InsertItem()
      

  2.   

    InsertColumn()
    在OnInit里做了CListCtrl *pList = (CListCtrl *)GetDlgItem(IDC_LIST_DIGITAL);pList->DeleteAllItems()    //把之前表上的数据全部清空,//注释掉这一句显示就正常了,但是要清除的几行数据还在上面
    for(int i=0;i<nStr;i++)    //nStr是要插入的个数
    {
    pList->InsertItem(i,string);
    }
      

  3.   

    改成pList->InsertItem(pList->GetItemCount(),string);试试
      

  4.   

    跟踪一下返回值。然后在删除所有条目后 调用一下统计条目的函数CListCtrl::GetItemCountCListCtrl::GetItemCountint GetItemCount()返回值:列表视图控件中项的数目。说明:获取列表视图控件项的数目。
    ___________________________________
    CListCtrl::DeleteAllItemsBOOL DeleteAllItems()返回值:如果成功,则返回非零值,否则为0。
    ——————————————————————————————说明:
    调用该函数将从列表视图控件中删除所有的项。CListCtrl::InsertItemint InsertItem(const LVITEM* pItem)
    int InsertItem(int nItem,LPCTSTR lpszItem)
    int InsertItem(int nItem, LPCTSTR lpszItem,int nImage)
    int InsertItem(UINT nMask,
                   int nItem,
                   LPCTSTR lpszItem,
                   UINT nState,
                   UINT nStateMask,
                   int nImage,
                   LPARAM lParam
                  )返回值:
    如果成功,则返回新建列的索引值,否则为-1。参数: pItem 指向指定项属性LVITEM结构的指针,如联机文档“平台SDK”中所述。  
    nItem 被插入项的索引值。  
    lpszItem 包含项标签的字符串的地址,或当项为回调项时,该变量为LPSTR_TEXT CALLBACK。要了解更多有关回调项的信息,请参阅CListCtrl::GetCall backMask.  
    nImage 项图象的索引值,或当项为回调项时,该变量为I_IMAGECALLBACK。要了解更多有关回调项的信息,请参阅CListCtrl::GetCallbackMask  
    nMask 参数nMask指定了哪个项属性作为参数传递是有效的。它可以是联机文档“平台SDK” 中LVITEM结构所描述的一个或多个掩码值。有效的数据能够通过位与运算来组合。  
    nState 指示项的状态、状态图象及轮廓图象。请参阅联机文档“平台SDK”中的LVITEM来获取更多信息,并参阅有效标志列表中的列表视图项状态。  
    nStateMask 指示状态成员中的哪一位将被获取或修改。请参阅联机文档“平台SDK”中的LVITEM来获取更多信息。  
    nImage 图象列表之内项的图象的索引。  
    lParam 与项相关联的应用指定的32位值。如果该参数被指定,那么必须设置nMask的属性为LVIF_PARAM。  说明:向列表视图控件中新插入一项。
      

  5.   

    这是CListCtrl一个老问题了,你拖动下列头 那一列的数据就会显示出来