向各为前辈请教一个排序的问题 我在一个LISTCTRL中显示某个目录下的所有文件和文件夹,但文件和文件夹的顺序是乱的请问该如何对这些文件和文件夹进行排序.就象WINDOWS的一样,文件夹排在前面,文件按序排在后边. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 需要写一个sort的回调函数 sort涵数和CALL BACK涵数都写好了,可是排不出我想要的序啊,文件和文件夹还是夹杂混在一起不象资源管理器里的那样文件夹都排在文件的前边.int CALLBACK ListCompare(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort){CRecordListCtrl* pV=(CRecordListCtrl*)lParamSort; CString strItem1, strItem2; LVFINDINFO info; int nIndex; info.flags = LVFI_PARAM;//设置为LVFI_PARAM,后面的FindItem才能有效,详情参考MSDN的LVFINDINFO info.lParam = lParam1; //由item data(lParam1)得到对应的item text if ( (nIndex = pV->FindItem(&info)) != -1) { strItem1 = pV->GetItemText(nIndex, pV->m_nSortedCol); } info.lParam = lParam2; //由item data(lParam2)得到对应的item text if ( (nIndex = pV->FindItem(&info)) != -1) { strItem2 = pV->GetItemText(nIndex, pV->m_nSortedCol); } int iCompRes; if (pV->m_nSortedCol == 6 || pV->m_nSortedCol == 8) { iCompRes = (atoi(strItem1) < atoi(strItem2))?1:-1; //iCompRes = strcmp(strItem1, strItem2); } else { iCompRes = strcmp(strItem1, strItem2); } //根据当前的排序方式进行调整 if(pV->m_fAsc) return iCompRes; else return iCompRes*-1;} HDC所指向的内存为什么都是?????? 拆分窗口后,视图如何与文档进行关联 vc隐藏进程失败(MapViewOfFile函数失败) 关于获取指定窗口的标题,来者有分,谢谢 哪位大虾帮忙看下,编译没有错误,运行出错???? dll的调用问题 如何在java制作的界面 的编辑框中模拟输入 什么是josephus 请教:谁有PPPoE实现的源码,或者告诉我到哪里去找? 大家帮我看看这个问题:编译的时候连接时出这样的问题该怎样解决?还有什么库没有包含进来吗? FloodFill()方法,请多多帮忙 过了高程的兄弟能否给点建议,偶今年10月要考了
不象资源管理器里的那样文件夹都排在文件的前边.
int CALLBACK ListCompare(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
CRecordListCtrl* pV=(CRecordListCtrl*)lParamSort;
CString strItem1, strItem2;
LVFINDINFO info;
int nIndex;
info.flags = LVFI_PARAM;//设置为LVFI_PARAM,后面的FindItem才能有效,详情参考MSDN的LVFINDINFO info.lParam = lParam1; //由item data(lParam1)得到对应的item text
if ( (nIndex = pV->FindItem(&info)) != -1)
{
strItem1 = pV->GetItemText(nIndex, pV->m_nSortedCol);
}
info.lParam = lParam2; //由item data(lParam2)得到对应的item text
if ( (nIndex = pV->FindItem(&info)) != -1)
{
strItem2 = pV->GetItemText(nIndex, pV->m_nSortedCol);
} int iCompRes;
if (pV->m_nSortedCol == 6 || pV->m_nSortedCol == 8)
{
iCompRes = (atoi(strItem1) < atoi(strItem2))?1:-1;
//iCompRes = strcmp(strItem1, strItem2);
}
else
{
iCompRes = strcmp(strItem1, strItem2);
}
//根据当前的排序方式进行调整
if(pV->m_fAsc)
return iCompRes;
else
return iCompRes*-1;}