Clistctrl多行删除总结
来源:互联网 发布:uu淘宝店地址 编辑:程序博客网 时间:2024/05/27 20:46
备注:第五种方法已经试过,其余没试过,感觉是对的(第二种方法是错误的 )
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<m_listCtrl.GetItemCount(); i++)
{
if(m_listCtrl.GetItemState(i, LVNI_ALL | LVNI_SELECTED) == LVIS_SELECTED)
m_listCtrl.DeleteItem(i);
}
方法五:
POSITION
}
- Clistctrl多行删除总结
- CListCtrl控件删除多行
- CListCtrl的多行删除
- CListCtrl的多行删除实现
- CListCtrl删除选中行
- CListCtrl删除选中行
- CListCtrl删除选中行
- CListCtrl删除选中行
- CListCtrl 多行删除 会出现跳行删除的问题
- MFC列表控件 (CListCtrl) 的删除多行
- CListCtrl删除多行的两种方法
- CListCtrl删除选中行和CListCtrl的用法(详)
- CListCtrl删除选中行和CListCtrl的用法(详)
- ClistCtrl 用法 行 插入 风格 形式 删除
- CListCtrl 空间删除选中行的方法
- CListCtrl 删除多条选中记录
- CListCtrl 高亮删除
- 删除CListCtrl中具有某一相同数据的所有行
- ubuntu12.04LTS 下安装MyEclispe
- iphone开发内存管理之──深拷贝和浅拷贝
- 进程名与进程号的对应关系获取
- iOS系统安全机制概览
- javaassist修改constructor构造函数,增加方法,修改方法
- Clistctrl多行删除总结
- iSuppli:Nexus 7 成本价152美元 利润远不敌iPad
- 从零开始配置Dreamweaver CS5.5+PhoneGap移动开发环境
- Android初学者都需要的资源下载列表
- Java类加载内幕
- ps -aux出来的stat结果Ss,Sl,SN~~
- 服务器端和android客户端通信 服务器端实现
- Linux开发初学者都需要的资源
- iOS内存管理编程指南