ListCtrl排序详解

 这里我们用Clistctrl 类自带的函数SortItems

首先添加点击表的列头响应函数

  

1、如果不在排序前给表中数据项添加索引号的话,排序函数是无法使用的,排序是按照数据项的索引号来排,所以这个一定要设置

2DATA是一个全局结构体,它包括两个参数

  

 

  这两个参数是要传递到排序函数中去的(如果有多个参数需要传递,也可以扩展结构体的参数)

data.subitem = pNMListView->iSubItem;//点击了第几列,将列数传递给data.subitem

data.plist = &m_List;// m_List Clistctrl的对象,即将指地址递给变量,再做为参数传 递到排序函数中去

3bool fav=FALSE;//全局变量 初始化为用来控制升序还是降序排列

4SortItemsListctrl自带的 回调函数

5listCompare排序函数名,注意这个函数必须是全局的,或是静态的static函数

接着来看一下listCompare 这个排序函数(这里只写了两个case,也就是点击listctrl的第0列和第1列排序,一个是int型排序,一个是字符串排序)

前些时候还有篇文章也是介绍listctrl排序的,没有使用listctrl自带的回调函数,只是在相应列头点击消息中排序,(详见我博客前几篇)现在发现那种方法数据不大的时候还可以,数据量一大,就很慢了!所以还是推荐这种排序方法!效率比较高!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值