int CALLBACK ListCompare(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
CSortList* pV=(CSortList*)lParamSort;
lParam2=(!lParam1);
CListCtrl::SetItemData(pV->m_nSortedCol, (DWORD)&m_list1);
CString strItem1, strItem2;
LVFINDINFO info;
int nIndex;
info.flags = LVFI_PARAM;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 = strcmp(strItem1, strItem2);
//根据当前的排序方式进行调整
if(pV->m_fAsc)
return iCompRes;
else
return iCompRes*-1;
}
void CStudentdlg::OnColumnclickList2(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if( pNMListView->iSubItem == m_list1.m_nSortedCol )
m_list1.m_fAsc = !m_list1.m_fAsc;
else
{
m_list1.m_fAsc = TRUE;
m_list1.m_nSortedCol = pNMListView->iSubItem;
}
m_list1.SortItems( ListCompare, (DWORD)&m_list1);
*pResult = 0;
}这个也是我在网上查来的,用在了我的程序上,还是有些问题,有些地方也不太明白比如说 lParam1 lParam2 这两个参数是做什么的,为什么我调试的时候发现他们返回的值都是0,
排序结果不正确,谁能告诉我是哪出错了?
{
CSortList* pV=(CSortList*)lParamSort;
lParam2=(!lParam1);
CListCtrl::SetItemData(pV->m_nSortedCol, (DWORD)&m_list1);
CString strItem1, strItem2;
LVFINDINFO info;
int nIndex;
info.flags = LVFI_PARAM;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 = strcmp(strItem1, strItem2);
//根据当前的排序方式进行调整
if(pV->m_fAsc)
return iCompRes;
else
return iCompRes*-1;
}
void CStudentdlg::OnColumnclickList2(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if( pNMListView->iSubItem == m_list1.m_nSortedCol )
m_list1.m_fAsc = !m_list1.m_fAsc;
else
{
m_list1.m_fAsc = TRUE;
m_list1.m_nSortedCol = pNMListView->iSubItem;
}
m_list1.SortItems( ListCompare, (DWORD)&m_list1);
*pResult = 0;
}这个也是我在网上查来的,用在了我的程序上,还是有些问题,有些地方也不太明白比如说 lParam1 lParam2 这两个参数是做什么的,为什么我调试的时候发现他们返回的值都是0,
排序结果不正确,谁能告诉我是哪出错了?
解决方案 »
- 各位前辈帮忙下吧 [ richedit] 的问题@ 分都求这个求光了!!
- log4cpp使用问题求助
- winsock HTTP下载超时的问题?
- 为什么在对话框的初始化函数中,这段代码不执行?
- 重画问题,难也难也!在OnPaint中将CDialog::OnPain()注释掉,由此所引发的问题。
- 我如何将一个指定文件夹的所有图片文件(格式指定)的文件名读取出来?
- 2如何HOOK这个函数GetTickCount
- 怎样令一个按钮在某些情况下出现,某些情况不出现!thanks!
- 有几个问题想请教
- 在主窗体中打开另一线程,此时关闭此应用程序可直接关闭主窗体吗?打开的线程也会关闭吗?
- 如何输出到BUILD窗口的内容自动的保存到我制定的某个文本文件中???
- 初学MFC用VC++2005好吗?
你没有设置,所以返回的都是0