CtrlList排序后怎么刷新啊?
int CALLBACK CMyView::SortCompareStringFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
CMyView* pThis = (CMyView*)lParamSort;
int c ;
CString strItem1=_T(""), strItem2=_T("");
strItem1 = pThis->m_ctrlMainListClient.GetItemText(lParam1,pThis->m_nClickItem);
strItem2 = pThis->m_ctrlMainListClient.GetItemText(lParam2,pThis->m_nClickItem);
c = strItem1.CompareNoCase(strItem2);
if(pThis->m_bCmpType)
c = -c;
return c;
}
void CMyView::OnHdnItemclickListclient(NMHDR *pNMHDR, LRESULT *pResult)
{
for(int i=0;i<m_ctrlMainListClient.GetItemCount();++i)
m_ctrlMainListClient.SetItemData(i,i);//供排序使用的Item编号
LPNMHEADER phdr = reinterpret_cast<LPNMHEADER>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
if(phdr->iItem == m_nClickItem)
m_bCmpType = ! m_bCmpType;
else
{
m_bCmpType = TRUE;
m_nClickItem = phdr->iItem;
}
m_ctrlMainListClient.SortItems(SortCompareStringFunc,(DWORD_PTR) this);
*pResult = 0;
}
调试在回调函数里可以看到strItem1 ,strItem12读到了所点列的值,也进行了比较,返回了C,可最后执行完,列表里的内容就没了,找了好久资料也没解决,郁闷啊!