关于duilib List 内部排序函数SortItems 的问题

由于duilib网上内容非常少,但是可以研究源码,目前也有几个qq群还是很活跃,但是对于较为深入一点的问题却还是大部分人都不清楚的。这篇文章说一说 List 内部排序函数SortItems 的调用问题。

BOOL CListUI::SortItems(PULVCompareFunc pfnCompare, UINT_PTR dwData)
 {
if (!m_pList)
return FALSE;
return m_pList->SortItems(pfnCompare, dwData);

}

这是内部定义。但是乍一看,不知道排序函数怎么写,参数又是什么意思。好了,不说废话了,直接上代码


下面是排序函数,也就是PULVCompareFunc pfnCompare  这个函数

int CALLBACK  ListSortCompareFunc(UINT_PTR param1, UINT_PTR param2, UINT_PTR param3)
{

CListTextExtElementUI* pControl1 = (CListTextExtElementUI* )param1;
CListTextExtElementUI* pControl2 = (CListTextExtElementUI* )param2;
CDuiString strText1 = pControl1->GetText((int)param3 );
CDuiString strText2 = pControl2->GetText((int)param3 );
return strcmp(strText1.GetData(), strText2.GetData());

}//返回值的意义大家可以仔细看duilib里面的关于这一段的东西,源码更有说服力


pListExControl->SortItems(ListSortCompareFunc, 1);//这是一个简单的调用  pListExControl 是List的指针 SortItems 的第二个参数可以自己决定传什么,建议第三个参数可以传排序依据的列的索引号。 比如我传的是1  那么排序的依据是根据第一列的数据从小到大排序。顺序和倒叙是排序函数ListSortCompareFunc的返回值决定的。就这么多了,第一次写博客。



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值