for(int k = 0; k < itemCount;k++)
{
pI = (CKItem *)pItems->itemsObArray.GetAt(k);
this->GetListCtrl().InsertItem(k,pI->GetItemID());
StringFromVartype (pI->GetDataType(), dataType);
this->GetListCtrl().SetItemText(k,1,dataType);
pI->GetValue(value);
this->GetListCtrl().SetItem(k,2,LVIF_TEXT,value,NULL,LVIF_TEXT,LVIF_TEXT,NULL);//.SetItemText(k,2,value);
pI->GetTimeStamp(timeStamp);
this->GetListCtrl().SetItemText(k,3,timeStamp);
this->GetListCtrl().SetItemText(k,4,pI->GetQuality());
updateCount.Format(_T("%d"),pI->GetUpdateCount());
this->GetListCtrl().SetItemText(k,5,updateCount);
}
CListView类的窗口格式为:
cs.style &= ~(LVS_ICON | LVS_SMALLICON | LVS_LIST);
cs.style |= (LVS_REPORT | LVS_EDITLABELS | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
当把一些数据插入之后,界面上并没有显示出数据,不知道是怎么回事呢,多谢!

解决方案 »

  1.   

    你说的没有显示出数据是指都没有显示还是一行里有几个item没有显示?
      

  2.   

    你能确定进入了for,那么你再确认一下SetItemText函数执行前text的内容是否正确?
      

  3.   

    怎么没有 this->GetListCtrl().SetItemText(k,0,dataType);
      

  4.   


    这句话完成了this->GetListCtrl().InsertItem(k,pI->GetItemID());
      

  5.   

    在OnInitialUpdate中
    是不是 不要这句啊
    cs.style &= ~(LVS_ICON | LVS_SMALLICON | LVS_LIST); // 这句不要下面这句应该就OK了吧。
    cs.style |= (LVS_REPORT | LVS_EDITLABELS | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);试试喽另外 :InsertItem 的返回值debug看一看,
      

  6.   

    好像是this不是对象有变,在我调用的那个函数里的this和OnInitialUpdate中的this指向的不同,不知道怎么回事,再想想,而且,在OnInitialUpdate中插入一行(用于测试)可以插入,插入也成功,但换到那个View类的哪一个函数中就不行了,嗯!
      

  7.   

    原因是((CClientView*)((CMainFrame*)m_pMainWnd)->GetActiveView())->InitView();
    原来的是:((CClientView*)(m_pMainWnd->GetActiveWindow())->InitView();
    即获取对象有误。不好意思!