使用下面的代码插入几个数据:
void CLib::InsertList(int iImage, CListCtrl* pList, CStringList* sList)
{
LVITEM lvIt;
lvIt.mask = LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM;
lvIt.iSubItem = 0;
lvIt.stateMask = LVIS_STATEIMAGEMASK;
lvIt.state = INDEXTOSTATEIMAGEMASK(1);
int iSub = 0;
BOOL init = FALSE;
lvIt.iItem = pList->GetItemCount();
for(POSITION pos = sList->GetHeadPosition(); pos != NULL;)
{
CString value = sList->GetNext(pos);
if(!init)
{
init = TRUE;
lvIt.pszText = value.GetBuffer(value.GetLength());
lvIt.iImage = iImage;
pList->InsertItem(&lvIt);
}
else
pList->SetItemText(lvIt.iItem, ++iSub, value);
}
}void CLib::CreateList(CListCtrl* pList)
{
pList->InsertColumn(0, _T("数据"), LVCFMT_LEFT, 60); // 0
}void Lib::InsData()
{
        // m_list是CListCtrl控件对应的变量
        CreateList(&m_list);
for(int i=1; i<=9; i++)
{
                CStringList sList;
                CString s;
                s.Format("%d", i);
sList.AddTail(s);
libxt.InsertList(-1, false, &m_list, &sList);
}
}程序显示:
1  4   7
2  5   8
3  6   9
我想让他显示:
1  2  3
4  5  6
7  8  9也就是横向显示,请各位指教

解决方案 »

  1.   

    看得头晕啊pList-> InsertColumn(0,   _T("数据"),   LVCFMT_LEFT,   60); //你这只插入一列,怎么要显示三列呢
    pList-> InsertItem(&lvIt);  //用了LVITEM结构,怎么还要SetItemText
      

  2.   

    你的ListCtrl是什么风格的??
    另外,void Lib::InsData() 里面:
    libxt.InsertList(-1,false,&m_list,&sList);
    libxt是什么变量?? 没看到你的定义啊,而且这里调用的InsertList函数也不是你定义的InsertList函数,因为你的InsertList函数只有三个变量,而这里用了四个~~:
    void CLib::InsertList(int iImage, CListCtrl* pList, CStringList* sList)(你定义的函数)