我正在逐行读取文件中的数据,并将每一行的标记放入向量tmpstrArr.Then中,为CListCtrl中的每一行添加标记,但CListCtrl以降序显示已排序的数据。我感到困惑,因为在调试元素的顺序与文件中可用的顺序相同时,我希望CListCtrl的CListCtrl数据与文件中的原始格式相同,而不是在排序的form.Also中,我检查了选中sort=None的CListCtrl属性窗口。
LVITEM lvi;
CString strItem;
m_listctrl.InsertColumn(0, _T("col 1"), LVCFMT_LEFT, 100);
m_listctrl.InsertColumn(1, _T("col 2"), LVCFMT_LEFT, 100);
for(int i=0;i<tmpstrArr.size();i++)
{
strItem=tmpstrArr.at(i).c_str();
lvi.iItem = 0;
lvi.iSubItem = i;
lvi.pszText = (LPTSTR)(LPCTSTR)(strItem);
//lvi.iImage = i%8;// There are 8 images in the image list
if(i==0)
{
lvi.mask = LVIF_IMAGE | LVIF_TEXT;
m_listctrl.InsertItem(&lvi);
}
else
m_listctrl.SetItem(&lvi);
}发布于 2013-11-13 07:54:49
您正在添加项位置为0的每个项。因此,您刚才插入的最后一项始终是列表中的第一项。见文档。
如果要获得与数组中相同的顺序,则需要将项添加到
lvi.iItem = m_listCtrl.GetItemCount();
// or use INT_MAX (see docu)
lvi.iItem = INT_MAX;https://stackoverflow.com/questions/19947157
复制相似问题