MFC中CListCtrl的排序 简介

 1、消息处理:LVN_COLUMNCLICK消息,可以控件自己处理,也可以外面的DLG处理。

CListCtrl自己处理:ON_NOTIFY_REFLECT(LVN_COLUMNCLICK, OnLvnColumnClick),OnLvnColumnClick函数就是获取点击的第几列,然后调用SortItems函数。

 

2、实现一个CALLBACK 排序回调函数,这个函数不是你调用的,是MFC调用的,具体是MFC在对CListCtr的两项进行l排序时,通过调用这个函数决定谁应该在谁的前面,可以去MSDN查这个回调函数的原型和说明

int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort),lParam1和lParam2是通过CListCtrl的成员函数SetItemDate在插入行时进行设置的,如果你没有设置,也就不从排序了,lParamSort是在调用SortItems函数时候,传入的第二参数,SortItems函数两个参数,第一个参数是排序回调函数指针。

 

3、排序回调函数三个返回值,和strcmp的一样,现在你可以知道怎么排序你完全可以控制了,因为实际是由你自己决定谁应该在谁的前面,分组排序也不难。只要在回调函数里面保持相应的顺序就行了。

 

4、常见的header上的小三角,可以自绘可以贴图片。

 

 

 

参考文献:

http://www.vckbase.com/document/viewdoc/?id=243

http://www.mx68.com/WebDeveloper/2006-03-10/WebDeveloper_29392.shtml

你可能感兴趣的:(header,mfc,callback)