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
    
         }
    
    }
    发现自己的不足,善于利用找到的方法去扬长避短。行动起来。
  • 相关阅读:
    unity panel删除drawcall失败导致的残留影像
    c# List的排序
    动画播放一段就禁用
    delegate用法
    ctrl+alt+end 修改桌面密码
    Windows 下curl htpps
    Linux下端口映射工具rinetd
    Linux系统下强制踢掉登录用户
    linux ls 按文件大小排序
    chrome的功能Copy as cURL
  • 原文地址:https://www.cnblogs.com/rechen/p/5100314.html
Copyright © 2011-2022 走看看