删除列表控件(List Control)中的所有选中行(多选)

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是绑定列表控件的控制变量。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值