ListCtrl的Icon模式需要结合一个CImageList来完成
ADD:
int nSuccessCount = 0;
for(int nIndex = 0; nIndex < oVectorFile.size(); nIndex)
{
//判断是否是符合所需的图片类型文件,是继续,否则contune
//.......
//
LVITEM lvitem;
lvitem.mask = LVIF_TEXT | LVIF_IMAGE;
lvitem.iItem = ListCtrl.GetItemCount();
lvitem.iSubItem = 0;
lvitem.cchTextMax = _tcsLen(szName) + 1;
lvitem.pszText = szName;
lvitem.iImage = ListCtrl.GetImageList(LVSIL_NORMAL)->GetImageCount() + nSuccessCount ;
ListCtrl.InsertItem(&lvi);
nSuccessCount ++;
}
Delete:
{
ListCtrl.DeleteItem(nIndex);
ListCtrl.Arrange(LVA_ALIGNTOP);//需要刷新一下,否则其他项不会自动移动填充
ListCtrl.Invalidate();
}
删除时遇到一个困难,listctrl删一个Item,对应ImageList也删除一个,这时候对应关系乱了,因为listctrl得item中有一个iimage对应原imagelist中的index,这个指没有变,所以内部混乱,我的解决方法:listctrl删除时imagelist不删除,没有循环重新赋值。