ListCtrl排序详解

转载 2011年01月12日 11:30:00

 这里我们用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自带的回调函数,只是在相应列头点击消息中排序,(详见我博客前几篇)现在发现那种方法数据不大的时候还可以,数据量一大,就很慢了!所以还是推荐这种排序方法!效率比较高!

CListCtrl排序的解决办法

这两天写了一个程序,用到了CListCtrl,现把自己总结的排序的方法叙述一下。首先建立一个formview的单文档exe工程,名为SortA然后, 在dialog中添加一个 clistctrl控件,...
  • precipitant
  • precipitant
  • 2006年09月20日 19:25
  • 19936

自身支持排序的ListCtrl

自身支持排序的CSortListCtrlVC里的CListCtrl是个很不好用的控件,特别是排序,实现起来很麻烦。关于排序的基本用法,有一篇很好的文章:http://www.vchelp.net/vc...
  • coldcrane
  • coldcrane
  • 2005年07月03日 04:56
  • 5684

CListCtrl自动排序及添加排序箭头

应客户要求,在点击CListCtrl列表每列标题时进行排序,类似于WINDOWS资源管理器的效果。 首先在资源中添加LVN_COLUMNCLICK消息,生成OnLvnColumnclickListI...
  • shejiannan
  • shejiannan
  • 2017年11月15日 11:59
  • 270

关于CListView和CListCtrl的排序!

今天用到了这些知识,所以记忆下来,方便以后查询!   CListView的排序和CListCtrl的排序基本相似,所以在这里一并提一下。   什么时候排序?   当用户点击表头的时候,自然要触发排序...
  • lishuhuakai
  • lishuhuakai
  • 2015年04月23日 16:47
  • 2990

简单实现MFC ListControl 点击列头排序

第一步: 定义全局变量: int sort_column; // 记录点击的列 bool method; // 记录比较方法 第二步: 添加比较函数 1 // 比较函数 2sta...
  • langal1212
  • langal1212
  • 2015年11月30日 16:03
  • 1336

自身支持排序的CSortListCtrl

自身支持排序的CSortListCtrlVC里的CListCtrl是个很不好用的控件,特别是排序,实现起来很麻烦。关于排序的基本用法,有一篇很好的文章:http://www.vchelp.net/vc...
  • skyremember
  • skyremember
  • 2006年07月27日 18:33
  • 4913

CListCtrl中加入排序小图标,CHeaderCtrl::GetItem可能被误用。

因为项目需求,要在CListCtrl中加上排序小图标,Google到博文http://blog.csdn.net/liujiannanit125/article/details/6249039,感谢博...
  • hhhh63
  • hhhh63
  • 2012年07月09日 17:03
  • 3384

listctrl 排序

  • 2011年09月29日 22:17
  • 32KB
  • 下载

ListCtrl排序

  • 2010年07月24日 15:04
  • 76KB
  • 下载

控件ListCtrl 点击表头排序

//回调函数 排序(回调函数要声明为static) int CALLBACK CSortListctrl::CompareFunc(LPARAM lParam1,LPARAM lParam2,LPA...
  • cjb44444
  • cjb44444
  • 2013年01月04日 15:11
  • 1358
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ListCtrl排序详解
举报原因:
原因补充:

(最多只允许输入30个字)