List-View 排序方案一
来源:互联网 发布:全球云计算市场 编辑:程序博客网 时间:2024/04/27 18:09
List-View 排序方案一
最近需要解决List-View排序的问题,网上很多资料, 却很少有说明使用条件的,所以程序调试出问题,查阅MSDN, 有些心得,分享一下。
此排序方案适用条件:
仅使用于Common List-View, 而不支持Virtual List-View(或许需改进),即不支持Owner Data(窗口风格不支持LVS_OWNERDATA), 支持该风格的待续。
代码(部分来源于网络)。
struct DictListData
{
CListCtrl * plistctrl;
int isub;
int iseq;
};
BEGIN_MESSAGE_MAP()
ON_NOTIFY(LVN_COLUMNCLICK, IDC_LIST, OnColumnclickList)
END_MESSAGE_MAP()
static int CALLBACK CompareFunc(LPARAM lParam1,LPARAM lParam2,LPARAM lParamSort)
{
DictListData * pListData = (DictListData *)lParamSort;
CListCtrl * pDictlistCtrl = pListData->plistctrl;
int isub = pListData->isub;
LVFINDINFO findInfo;
findInfo.flags = LVFI_PARAM;
findInfo.lParam = lParam1;
int iItem1 = pDictlistCtrl->FindItem(&findInfo, -1);
findInfo.lParam = lParam2;
int iItem2 = pDictlistCtrl->FindItem(&findInfo, -1);
CString strItem1 = pDictlistCtrl->GetItemText(iItem1,isub);
CString strItem2 = pDictlistCtrl->GetItemText(iItem2,isub);
if(pListData->iseq)
{
return strcmp(strItem2, strItem1);
}
else
{
return -strcmp(strItem2, strItem1);
}
}
void CXXXDlg::OnColumnclickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW * pNMListView = (NM_LISTVIEW * )pNMHDR;
// TODO: Add your control notification handler code here
DictListData *tmpp = new DictListData;
tmpp->plistctrl = &m_List; //Your list need to be sorted
tmpp->isub = pNMListView->iSubItem;
int sortnum = (int)GetProp(m_List.GetSafeHwnd(),"SORT_COLUMN");
int sortasc = (int)GetProp(m_List.GetSafeHwnd(),"SORT_DIRECTION");
if(sortnum == pNMListView->iSubItem)
{
sortasc = (sortasc + 1) % 2;
SetProp(m_List.GetSafeHwnd(),"SORT_DIRECTION",(HANDLE)sortasc);
}
SetProp(m_List.GetSafeHwnd(),"SORT_COLUMN",(HANDLE)pNMListView->iSubItem);
tmpp->iseq = sortasc;
m_List.SortItems(CompareFunc,(LPARAM)tmpp);
for (UINT i = 0; i < m_ExistingList.size(); i++) // The enter point
{
m_List.SetItemData(i,i);
}
*pResult = 0;
}
- List-View 排序方案一
- List View的排序类
- listview排序:List View的排序类
- Python(二)排序(一)list排序
- C# 使用IComparer自定义List类的排序方案
- C# 使用IComparer自定义List类的排序方案
- [VIEW]成績龍虎榜(Ranking List),排序算法 with PHP
- list view
- List View
- List View
- Odoo Views (一) - 通用和 List View
- List View //API Guides Layouts List View
- 方案一
- List排序
- list 排序
- list排序...
- List排序
- List 排序
- javascript常用函数方法(DOM基本操作)
- 您正在试图运行的函数包内含有宏或需要语言支持。。。
- 2Dto3D视频转换技术
- 我对3d游戏的理解..
- URLRequest 的一个实例
- List-View 排序方案一
- DIV+CSS的命名规则有利于网站优化
- 为什么使用泛型
- HeapAlloc和GlobalAlloc以及VirtualAlloc三者之间的关系
- MeeGo 车载娱乐系统通过GENIVI联盟正式接纳
- NUTCH暂时不研究了,研究一下RTX的插件开发,有高手可以来介绍一下吗?
- 包含随机数生成的停车管理系统模拟
- 平均值、标准差、相关系数、回归线及最小二乘法
- linux apache开启伪静态