我在一个ControlBar的OnCreate函数里生成ListCtrl,初始化插入一些数据,程序运行能正常显示。
当我响应某些消息,并向ListCtrl里插入新数据时,却不能显示了,UpdateWindow, Invalidate,UpdateData(false)都没用。为什么?
ListCtrl是Report类型。

解决方案 »

  1.   

    nItem=m_listctrl.GetItemCount();不是 //nItem=m_listctrl.GetItemCount()+1
    InsertItem( int nItem,...)
    仔细看看源程序,我以前就碰到这个错误。
      

  2.   

    直接用InsertItem方法插入就行了,可以查看MSDN
    要不把代码贴出来。
      

  3.   

    void CMyBarBottom::FormatList(CString * csText){
    int nI = m_ListCtrl.GetItemCount();
    LV_ITEM lvi;
    if (csText)
    {
        lvi.mask = LVIF_TEXT | LVIF_STATE;
        lvi.iItem = nI;
        lvi.iSubItem = 0;
        lvi.iImage = 0;
        lvi.stateMask = LVIS_STATEIMAGEMASK;
        lvi.state = INDEXTOSTATEIMAGEMASK(1);
        lvi.pszText = (char*)(LPCTSTR)csText[0];
        int result = m_ListCtrl.InsertItem(&lvi);
        if (result != -1)
            {
    m_ListCtrl.SetItemText(nI, 1, csText[1]);
    m_ListCtrl.SetItemText(nI, 2, csText[2]);
    }
    }
    }
      

  4.   

    曾经碰到过,不知为什么!建议用ListView
      

  5.   

    InserItem调用后返回值为0,接着调用GetItemCount(),还是为0,应该是1呀
      

  6.   

    把CListCtrl控件的,Styles属性页中的View设置为Report。