利用:
CListCtrl m_List;
POSITION pos;
pos=m_List.GetFirstSelectedItemPosition();
int nItem=m_List.GetNextSelectedItem(pos);
m_List.DeleteItem(nItem );
删除指定行后,如何让剩余行仍按序排序?如        删除2行后      我需要
1            1             1
2            3             2
3            4             3
4            5             4
5

解决方案 »

  1.   

    循环m_List.GetItemText遍~~SetItemText....
      

  2.   

    BOOL SortItems(
       PFNLVCOMPARE pfnCompare,
       DWORD_PTR dwData 
    );// Sort the item in reverse alphabetical order.
    static int CALLBACK 
    MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
    {
       // lParamSort contains a pointer to the list view control.
       CListCtrl* pListCtrl = (CListCtrl*) lParamSort;
       CString    strItem1 = pListCtrl->GetItemText(lParam1, 0);
       CString    strItem2 = pListCtrl->GetItemText(lParam2, 0);   return strcmp(strItem2, strItem1);
    }void snip_CListCtrl_SortItems()
    {
       // The pointer to my list view control.
       extern CListCtrl* pmyListCtrl;   // Sort the list view items using my callback procedure.
       pmyListCtrl->SortItems(MyCompareProc, (LPARAM) pmyListCtrl);
    }
      

  3.   

    我用了楼上的回调函数,但编译有错:
    error LNK2001: unresolved external symbol "class CListCtrl * pmyListCtrl"
     (?pmyListCtrl@@3PAVCListCtrl@@A)哪位仁兄能帮我解决一下!另加分!