帮帮我,我不知道用什么函数来得到选定的行的序号,而且我的CListCtrl不能排序.
我用GetHotItem()
返回为-1
我想删除选定的一项不能成功.
下面是我的代码:
m_cSNotionList.DeleteItem(m_cSNotionList.GetHotItem());请说的详细点

解决方案 »

  1.   

    m_cSNotionList.DeleteItem(m_cSNotionList.GetNextItem(-1, LVNI_SELECTED ));
    GetHotItem to get the list view item currently under the cursor
      

  2.   

    CListCtrl *pCtrList;
    pCtrList=(CListCtrl*)GetDlgItem(IDC_RELATIONS);
    int n=pCtrList->GetItemCount();
    for(int i=0;i<=n;i++)
    {
    if(pCtrList->GetItemState(i,LVIS_SELECTED)==LVIS_SELECTED)
    {  
    pCtrList->DeleteItem(i); 
    i=0;
    }
    }
      

  3.   

    m_cSNotionList.DeleteItem(m_cSNotionList.GetSelectionMark());
      

  4.   

    谢谢这位 phiger大哥(大姐).
    我还想点击后对一列排序.再帮帮我吧!
      

  5.   

    pCtrList->GetItemState(-1,LVIS_SELECTED)
      

  6.   

    排序的功能直接在控件的属性中选中sort选项就可以了
      

  7.   

    排序问题:在CListCtrl的属性页Styles中选择 [分类]下拉框中的Ascending(上升)或Descending(下降)即可。
    序号问题:
    int nSel;
    UINT i, uSelectedCount = m_list.GetSelectedCount();
    // uSelectedCount 中为选中的项目总数目
    int  nItem = -1;if (uSelectedCount > 0)
    {
       for (i=0;i < uSelectedCount;i++)
       {
          nItem = m_list.GetNextItem(nItem, LVNI_SELECTED);
          if(nItem != -1)
    {
      nSel = nItem;
      break;
    /*找到第一个选中项目后就退出,nSel中为选中的项目序号,从0开始。对于可多选的列表框,可去掉break语句,在此直接使用nItem中的序号。
    */
    }
         
       }
    }
    // 删除项目
    m_list.DeleteItem(nSel);