VC ListCtrl 列表 单击排序怎么实现

来源:百度知道 编辑:UC知道 时间:2024/07/19 09:55:58
VC ListCtrl 列表 单击排序怎么实现
最好事有实例,好研究
人笨了点,查了一上午的资料,还是没搞定···

我刚开始工作,很多东西要学
牛哥们能否给小弟些建议。
迫切需要,金融危机,我小命难保呀~~
就是单击列表头,排序。

单击列表头的时候会产生LVN_COLUMNCLICK通知消息
ON_NOTIFY(LVN_COLUMNCLICK, IDC_LIST1, OnColumnclickList1)
你在OnColumnclickList1这个函数里面取得当前单击的是哪个表头
然后在看看是不是需要排序的那一行 调用排序函数就可以了
CListctrl本身也有排序函数的SortItems()
http://www.jcwcn.com/html/VC/10_19_51_127.htm 稍微搜下都有例子的啊

添加OnColumnclickList消息响应函数,isSotred获得的是你单击的那一列,然后再调用回调函数CompareFunc进行处理。
void CP2PAssignmetDlg::OnColumnclickList(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here

static int iSorted=-1;//排列序号

if (pNMListView->iSubItem==iSorted) return;

iSorted=pNMListView->iSubItem;

m_list.SortItems((PFNLVCOMPARE)CompareFunc,iSorted);
*pResult = 0;
}

strAllData为你的数据组织结构,可以为Struct
int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2,L