如何详细操作VC List Control控件删除已选记录实例?
- 内容介绍
- 文章标签
- 相关推荐
本文共计343个文字,预计阅读时间需要2分钟。
使用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); }}这段代码首先通过`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中选中的记录,可以通过以下步骤实现:
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); }}这段代码首先通过`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()); }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

