当前位置: 首页 > 图文教程 > 开发语言 > VC++ > 列表控件排序功能的实现

VC++
用 auto_ptr 类模板帮助动态内存管理
走近 STL
一步一步学STL标准模板库
使用 <multimap> 库创建重复键关联容器
使用 <map> 库创建关联容器
用 vectors 改进内存的再分配
用函数模板实现和优化抽象操作
STL 字符串类与 UNICODE 及其它......
如何在Dll中导出STL类
再谈“在STL列表(Lists)中插入不同类型的对象”
使用::std::vector<>作为管理动态数组的优先选择
三种常见中文内码的转换方法
JNI 中文处理问题小结
构建 GB2312 汉字库的 unicode 码表
正则表达式简介
在非MFC程序中引用CString
UTF-8与GB2312之间的互换
宽字符标量L"xx"在VC6.0/7.0和GNU g++中的不同实现
用VC++设计语法编辑器
C语言中对时间和日期的处理

VC++ 中的 列表控件排序功能的实现


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 62 ::
收藏到网摘: n/a

列表控件排序功能的实现
作者:王骏

适合读者:初学

一、前言
列表控件是大家经常用到的控件,但对其排序时因为需要设计用于排序的回调函数,所以往往让初学者不知所措,本文提供了一个将排序功能封装好的类:CSortListCtrl,您只需要简单使用该类即可。

下载示例工程 17K (下图是示例程序的运行界面)

二、如何使用
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") );
现在该列表控件已经有了内容,可以对任意列进行排序,在列头还有指示排序方式的三角,非常实用!