如何详细操作VC List Control控件删除已选记录实例?

2026-05-20 00:301阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计343个文字,预计阅读时间需要2分钟。

如何详细操作VC List Control控件删除已选记录实例?

使用VC++ List Control控件删除选中的记录实例详解及示例代码:

要删除VC++ List Control中选中的记录,可以通过以下步骤实现:

1. 获取第一个选中项的位置。

2.遍历所有选中的项,并从列表中删除它们。

示例代码如下:

cpp

void OnButtonDelete(){ POSITION pos=m_list.GetFirstSelectedItemPosition(); int idx=m_list.GetNextSelectedItem(pos); while (idx !=-1) { LVITEM lvi; lvi.iItem=idx; m_list.DeleteItem(&lvi); idx=m_list.GetNextSelectedItem(pos); }}

如何详细操作VC List Control控件删除已选记录实例?

这段代码首先通过`GetFirstSelectedItemPosition`获取第一个选中项的位置,然后使用`GetNextSelectedItem`遍历所有选中的项。对于每个选中的项,创建一个`LVITEM`结构体,设置其`iItem`成员为当前项的索引,然后调用`DeleteItem`函数来删除该项。遍历完成后,所有选中的记录都会被删除。

VC List Control控件如何删除选中的记录实例详解

实例代码:

OnButtonDelete() { POSITION pos = m_list.GetFirstSelectedItemPosition(); int idx = m_list.GetNextSelectedItem(pos); while (idx != -1){ LVITEM lvi; lvi.iItem = idx; lvi.iSubItem = 0; lvi.mask = LVIF_IMAGE; if (m_list.GetItem(&lvi)){ m_imgList.Remove(lvi.iImage); //同时删除ImageList中的对应图片 } m_list.DeleteItem(idx); idx = m_list.GetNextSelectedItem(pos); }

需要先排序,再重绘,否则从中间删除后该区域会空白,后面的记录不会自动上移

m_list.Arrange(LVA_DEFAULT); m_list.RedrawItems(0, m_list.GetItemCount()); }

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

标签:记录

本文共计343个文字,预计阅读时间需要2分钟。

如何详细操作VC List Control控件删除已选记录实例?

使用VC++ List Control控件删除选中的记录实例详解及示例代码:

要删除VC++ List Control中选中的记录,可以通过以下步骤实现:

1. 获取第一个选中项的位置。

2.遍历所有选中的项,并从列表中删除它们。

示例代码如下:

cpp

void OnButtonDelete(){ POSITION pos=m_list.GetFirstSelectedItemPosition(); int idx=m_list.GetNextSelectedItem(pos); while (idx !=-1) { LVITEM lvi; lvi.iItem=idx; m_list.DeleteItem(&lvi); idx=m_list.GetNextSelectedItem(pos); }}

如何详细操作VC List Control控件删除已选记录实例?

这段代码首先通过`GetFirstSelectedItemPosition`获取第一个选中项的位置,然后使用`GetNextSelectedItem`遍历所有选中的项。对于每个选中的项,创建一个`LVITEM`结构体,设置其`iItem`成员为当前项的索引,然后调用`DeleteItem`函数来删除该项。遍历完成后,所有选中的记录都会被删除。

VC List Control控件如何删除选中的记录实例详解

实例代码:

OnButtonDelete() { POSITION pos = m_list.GetFirstSelectedItemPosition(); int idx = m_list.GetNextSelectedItem(pos); while (idx != -1){ LVITEM lvi; lvi.iItem = idx; lvi.iSubItem = 0; lvi.mask = LVIF_IMAGE; if (m_list.GetItem(&lvi)){ m_imgList.Remove(lvi.iImage); //同时删除ImageList中的对应图片 } m_list.DeleteItem(idx); idx = m_list.GetNextSelectedItem(pos); }

需要先排序,再重绘,否则从中间删除后该区域会空白,后面的记录不会自动上移

m_list.Arrange(LVA_DEFAULT); m_list.RedrawItems(0, m_list.GetItemCount()); }

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

标签:记录