1、首先是获取选中行的序号:
int nItem = -1;
POSITION pos = pList->GetFirstSelectedItemPosition();
if (pos != NULL)
{
while (pos)
{
nItem = pList->GetNextSelectedItem(pos);
// nItem即是选中行的序号
}
}
2、但是,利用上述代码删除选中行会出错,因为每删除一行时,删除行之后的行序号会整体前移一位;也就是说,除非从后向前删除,否则会出错。
3、下面介绍一种实现删除多条选中行的方法:
int nItem = -1;
POSITION pos;
while (pos = m_list.GetFirstSelectedItemPosition())
{
nItem = -1;
nItem = m_list.GetNextSelectedItem(pos);
if (nItem >= 0 && m_list.GetSelectedCount() > 0)
{
m_list.DeleteItem(nItem);
}
}
4、说明:pList是指向列表控件的指针,m_list是绑定列表控件的控制变量。