删除列表控件(List Control)中的所有选中行(多选)
2014-10-01 17:06
351 查看
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是绑定列表控件的控制变量。
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是绑定列表控件的控制变量。
相关文章推荐
- VC List Control控件如何删除选中的记录实例详解
- VC List Control控件删除选中的记录
- VS2010/MFC编程入门之二十八(常用控件:列表视图控件List Control 上)
- 利用列表控件(listcontrol)下面的东东做的 下拉列表联动 案例,我整了两天才整懂,别笑我笨,嘿嘿!
- 鸡啄米vc++2010系列27(列表视图控件List Control 上)
- MFC List Control 控件添加单元格编辑和单元格下拉列表项
- MFC之列表视图控件List Control
- 用webbrowser控件做一个资源管理器,如何得到IE控件中选中(鼠标多选)的文件名称列表?
- C++控件:ListControl列表控件的使用方法
- 鸡啄米vc++2010系列28(列表视图控件List Control 下)
- 鸡啄米vc++2010系列27(列表视图控件List Control 上)
- MFC 列表视图控件List Control 使用一
- listcontrol 列表控件下面的几种
- 列表视图控件(List Control)
- 用webbrowser控件做一个资源管理器,如何得到IE控件中选中(鼠标多选)的文件名称列表?
- List Control 列表控件的使用
- C++控件:ListControl列表控件的使用方法
- vc++ List Control控件获得所有选中行的序号
- VS2010/MFC编程入门之二十九(常用控件:列表视图控件List Control 下)
- 鸡啄米vc++2010系列28(列表视图控件List Control 下)