CString str;
int CurSel=m_list.GetNextItem(-1,LVNI_ALL | LVNI_SELECTED);
if(CurSel>=0)
{
str=m_list.GetItemText(CurSel,3);
DeleteFile(str);
m_list.DeleteItem(CurSel);
}
这个是删除选中的单行的。
将list设置为可多选后,再删除只能删除选中的第一个Item
求助,如何删除选中的多行。
int CurSel=m_list.GetNextItem(-1,LVNI_ALL | LVNI_SELECTED);
if(CurSel>=0)
{
str=m_list.GetItemText(CurSel,3);
DeleteFile(str);
m_list.DeleteItem(CurSel);
}
这个是删除选中的单行的。
将list设置为可多选后,再删除只能删除选中的第一个Item
求助,如何删除选中的多行。
{
CUIntArray arDelItem ;
//收集要删除的项
POSITION pos = m_list.GetFirstSelectedItemPosition() ;
while( NULL != pos )
{
int iSel = m_list.GetNextSelectedItem(pos);
if( -1 != iSel )
arDelItem.Add(iSel);
}
//一定要从后向前删
for(int i = arDelItem.GetUpperBound() ; i >= 0 ; i-- )
{
int iSel = arDelItem[i] ;
m_list.DeleteItem(iSel);
}
}
个人网站
博客
本人花了6个月的拙作<<深入浅出——Visual C++入门、进阶与应用实例 >>
如果问题解决,请及时结帖,这是对我们的鼓舞。
POSITION pos = GetListCtrl().GetFirstSelectedItemPosition();
while (pos)
{
int iSelItem = GetListCtrl().GetNextSelectedItem(pos);
GetListCtrl().DeleteItem(iSelItem);
pos = GetListCtrl().GetFirstSelectedItemPosition();
}
void CListCtrlDlg::OnButton2()
{
CUIntArray arDelItem ;
int CurSel=m_list.GetNextItem(-1,LVNI_ALL | LVNI_SELECTED);
while(CurSel >=0)
{
arDelItem.Add(CurSel) ;
CurSel=m_list.GetNextItem(CurSel,LVNI_ALL | LVNI_SELECTED);
}
// TODO: Add your control notification handler code here
//一定要从后向前删
for(int i = arDelItem.GetUpperBound() ; i >= 0 ; i-- )
{
int iSel = arDelItem[i] ;
m_list.DeleteItem(iSel);
}
}