如何使用?
CSortListCtrl是从CListCtrl派生的,所以使用方法与ClistCtrl是基本一致的。
下面以我们示例工程为例简单地介绍一下:
2.1 创建一个基于对话框的MFC工程,将本文示例工程中的SortHeaderCtrl.h,SortHeaderCtrl.cpp,SortListCtrl.h,SortListCtrl.cpp拷贝并加入到工程中。
2.2 在对话框中放置ListCtrl,ID为IDC_LISTCTRL,然后我们在ClassWiard->Member Variables处为IDC_LISTCTRL添加类型为CListCtrl的变量m_ctlList。然后在对话框类的头文件中将CListCtrl m_ctlList;改为CSortListCtrl m_ctlList;并在示例工程的头文件中加上#include "SortListCtrl.h"
2.3 以下代码是设置列表控件的列头与表项
(void)m_ctlList.SetExtendedStyle( LVS_EX_FULLROWSELECT );///整行选择模式
m_ctlList.SetHeadings( _T("姓名,120;生日,90;得分,50") ); ///设置列头信息
m_ctlList.LoadColumnInfo(); ///加载列信息
(void)m_ctlList.AddItem( _T("许世杰"), _T("1960/09/08"), _T("90") );///添加表项
(void)m_ctlList.AddItem( _T("盛晓玮"), _T("1974/03/12"), _T("89") );
(void)m_ctlList.AddItem( _T("吴玉强"), _T("1970/06/01"), _T("100") );
现在该列表控件已经有了内容,可以对任意列进行排序,在列头还有指示排序方式的三角,非常实用!
针对VC知识库中王骏写的中的示例程序的改进,主要修改了缺少res文件夹和程序对数字排序时未考虑到浮点数的问题。