对listctrl固定一行进行排序

llssjjxx 2010-04-16 10:28:35
有一个ListCtrl控件m_List1,它有七列,分别是“订单编号”、“商品编号”、“客户编号”,“单价”,“数量”,“下单日期”,“交货日期”现在我想根据某列(如交货日期)进行升序排列,要怎么做?请各位大侠不吝指教!



...全文
70 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
llssjjxx 2010-04-16
  • 打赏
  • 举报
回复
看了很多网上的例子,说是要用回调函数,但就是不会写回调函数来着 ,这样写着编译的时候顺利通过,但运行时提示错误
Debug Assertion Failed ……File: afxcmn.inl 点忽略就会出现winocc.cpp有错。究竟要如何改呢
static int CALLBACK MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
MyListCtrl*pListCtrl = (MyListCtrl*)lParamSort;

//获取要在ListCtrl中要比较的值
LVFINDINFO findInfo;
findInfo.flags = LVFI_PARAM;
findInfo.lParam = lParam1;
int iItem1 = pListCtrl->FindItem(&findInfo, -1);
findInfo.lParam = lParam2;
int iItem2 = pListCtrl->FindItem(&findInfo, -1);
CString strItem1 =pListCtrl->GetItemText(iItem1,6);
CString strItem2 =pListCtrl->GetItemText(iItem2,6);
return pListCtrl->m_bFAsc?strItem1.Compare(strItem2):strItem2.Compare(strItem1);//字符串比较

}

void CMy9View::Onordersort()
{
// TODO: Add your command handler code here
MyListCtrl pv;
pv.SortItems(MyCompareProc,0);
}
fishion 2010-04-16
  • 打赏
  • 举报
回复
思路是用一个链表与结构体来保存所有信息,再对这链表进行某一项的排序,排完序就再把数据重新写入ListCtrl中
youyou6115 2010-04-16
  • 打赏
  • 举报
回复
网上这种列子挺多的
soswaidao 2010-04-16
  • 打赏
  • 举报
回复
友情帮顶,友情帮顶
soswaidao 2010-04-16
  • 打赏
  • 举报
回复
友情帮顶,友情帮顶

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧