有没有关于ListCtrl中排序的代码,对文件按时间,大小,类型

解决方案 »

  1.   

    CListCtrl::SortItems  
    This  method  sorts  list  view  items  using  an  application-defined  comparison  function.  The  index  of  each  item  changes  to  reflect  the  new  sequence.  
     
    BOOL  SortItems(    
    PFNLVCOMPARE  pfnCompare,    
    DWORD  dwData  );    
    Parameters  
    pfnCompare    
    Specifies  the  address  of  the  application-defined  comparison  function.  The  comparison  function  is  called  during  the  sort  operation  each  time  the  relative  order  of  two  list  items  needs  to  be  compared.  The  comparison  function  must  be  either  a  static  member  of  a  class  or  a  standalone  function  that  is  not  a  member  of  any  class.    
    dwData    
    Specifies  the  application-defined  value  that  is  passed  to  the  comparison  function.    
    Return  Value  
    Nonzero  if  it  is  successful;  otherwise,  it  is  zero.  
     
    Res  
    The  comparison  function  has  the  following  form:  
     
    int  CALLBACK  CompareFunc(LPARAM  lParam1,  LPARAM  lParam2,    
       LPARAM  lParamSort);  
     
    The  comparison  function  must  return  a  negative  value  if  the  first  item  should  precede  the  second,  a  positive  value  if  the  first  item  should  follow  the  second,  or  zero  if  the  two  items  are  equivalent.  
     
    The  lParam1  and  lParam2  parameters  specify  the  item  data  for  the  two  items  being  compared.  The  lParamSort  parameter  is  the  same  as  the  dwData  value.  
     
    Example  
    //  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.  
       //  The  lParam  of  an  item  is  just  its  index.  
       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.  
       CListCtrl*  pmyListCtrl;  
     
       //  Sort  the  list  view  items  using  my  callback  procedure.  
       pmyListCtrl-  >SortItems(MyCompareProc,  (LPARAM)  pmyListCtrl);  
    }  
    comparefunc的lparam1,lpram2  就是lvitem  的lParam项,在insertitem的时候设置,或者用SetItemData设置(第二个参数)
      

  2.   

    我有一个类可以解决你的问题,你要是要的话就留下Email