博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Clistctrl多行删除总结
阅读量:5911 次
发布时间:2019-06-19

本文共 1043 字,大约阅读时间需要 3 分钟。

http://blog.csdn.net/vlily/article/details/7739483

备注:第五种方法已经试过,其余没试过,感觉是对的(第二种方法是错误的 )

 

 

CListCtrl选中行有两种属性情况,如果设置了Single Selection为TRUE,则只能单选,否则为多选(默认)。

方法一:
int CListCtrl::GetSelectionMark();
返回值:返回选中索引号,否则返回-1
说明:这个函数可以处理单行的情况,但是有一个缺点,它会保留你上次选中的项,所以当你单击空白的地方时,还会返回上次选中的项。因此在使用快捷键实现删除操作时需要注意这个情况,一般可以配合UINT GetItemState(int nItem,
UINT nMask) const;来判断。
单行:int nItem = m_listCtrl.GetSelectionMark();
m_listCtrl.DeleteItem(nItem);
方法二:
此种方法完全错误!!!!!!!!!!!
说明:这个可以处理单行和多行(连续)的情况

POSITION pos = m_listCtrl.GetFirstSelectedItemPosition();if (pos == NULL){TRACE(_T("No items were selected!\n"));}else{while (pos){int nItem = m_listCtrl.GetNextSelectedItem(pos);m_listCtrl.DeleteItem(nItem);// you could do your own processing on nItem here}}

 

方法三:
说明:可以处理单行和多行的情况,个人一般用这种方法

while(m_listCtrl.GetNextItem(-1,LVNI_ALL | LVNI_SELECTED) != -1){int nItem = m_listCtrl.GetNextItem(-1,LVNI_ALL | LVNI_SELECTED);m_listCtrl.DeleteItem(nItem);}方法四:说明:可以处理单行和多行的情况for(int i = 0; i
= 0 &&nSelItem

 

转载于:https://www.cnblogs.com/rechen/p/5100314.html

你可能感兴趣的文章
1.7. Apache Bloodhound
查看>>
动态载入数据的无刷新TreeView控件(8)
查看>>
等待超时,请打开设备管理器查看苹果驱动是否正常!
查看>>
[Erlang 0129] Erlang 杂记 VI 2014年10月28日
查看>>
单调、加班、血汗工厂,被夸大的富士康背后真相到底是什么?
查看>>
23.2. 基础操作
查看>>
JSDT 应用研究
查看>>
如何添加自定义脚本到开机自启动
查看>>
24.5. IN / NOT IN
查看>>
【批处理学习笔记】第七课:简单的批处理命令(6)
查看>>
Android.Hack.02_Animations
查看>>
[LeetCode] Repeated Substring Pattern 重复子字符串模式
查看>>
Quartz.NET总结(四)Quartz 远程调度
查看>>
2.22. Spring boot with Cache
查看>>
RxVolley使用文档 —— RxVolley = Volley + RxJava + OkHttp
查看>>
[Everyday Mathematics]20150130
查看>>
180.2. UpdateInstaller (AppServer, Plugins, IBMIHS)
查看>>
在自己的网站添加关注新浪关注按钮
查看>>
flask, SQLAlchemy, sqlite3 实现 RESTful API 的 todo list, 同时支持form操作
查看>>
[数分提高]2014-2015-2第5教学周第1次课
查看>>