背景: #EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  
阅读新闻

在ListCtrl中进行排序

[日期:2005-12-30] 作者: [字体: ]

  //排序函数实现
  int CALLBACK ListCompare(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
  {
   //通过传递的参数来得到CSortList对象指针,从而得到排序方式
   CSortList* pV=(CSortList*)lParamSort;
 
   //通过ItemData来确定数据
   DEMO_DATA* pInfo1=strAllData+lParam1;
   DEMO_DATA* pInfo2=strAllData+lParam2;
   CString szComp1,szComp2;
   int iCompRes;
   switch(pV->m_nSortedCol)
   {
   case(0):
    //以第一列为根据排序
    szComp1=pInfo1->szName;
    szComp2=pInfo2->szName;
    iCompRes=szComp1.Compare(szComp2);
    break;
   case(1):
    //以第二列为根据排序
    if(pInfo1->iAge == pInfo2->iAge)
     iCompRes = 0;
    else
     iCompRes=(pInfo1->iAge < pInfo2->iAge)?-1:1;
    break;
   default:
    ASSERT(0);
    break;
   }
   //根据当前的排序方式进行调整
   if(pV->m_fAsc)
    return iCompRes;
   else
    return iCompRes*-1;
  }


上一页1234  GO
阅读:
打印