zoukankan      html  css  js  c++  java
  • Clistctrl多行删除总结

    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!
    "));
    }
    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 sSelPos = NULL;
    
     while(sSelPos =m_listctrl.GetFirstSelectedItemPosition())
     {
           int nSelItem = -1;
            nSelItem = m_listctrl.GetNextSelectedItem(sSelPos);
    
            if(nSelItem >= 0 &&nSelItem<m_listctrl.GetItemCount())
          {
    
                好了,这个nSelItem 就是我们要的DD
    
         }
    
    }
    发现自己的不足,善于利用找到的方法去扬长避短。行动起来。
  • 相关阅读:
    HashMap(HashSet)的实现
    C/C++ 安全编码 —— 指针与内存
    AlexNet神经网络结构
    查看,修改动态组成员/通讯组
    刷新已禁用用户邮箱状态
    监控DAG状态
    AD诊断命令
    PowerShell管理Exchange
    TCP连接(Time_Wait、Close_Wait)说明
    IIS配置(安装IIS、.Net、更改IIS Log目录位置)
  • 原文地址:https://www.cnblogs.com/rechen/p/5100314.html
Copyright © 2011-2022 走看看