| Код | static int CALLBACK CompProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort){
// lParamSort contains a pointer to the list view control. // The lParam of an item is just its index. ASSERT(nColumn>=0); CListCtrl* pListCtrl = (CListCtrl*) lParamSort; CString strItem1 = pListCtrl->GetItemText(lParam1, nColumn); CString strItem2 = pListCtrl->GetItemText(lParam2, nColumn); return bAsc?strcmp(strItem1, strItem2):strcmp(strItem2,strItem1); }
void CWRegimeDlg::OnColumnclickApps(NMHDR* pNMHDR, LRESULT* pResult){
NM_LISTVIEW* pNMLV = (NM_LISTVIEW*)pNMHDR; nColumn==pNMLV->iSubItem?bAsc=!bAsc:nColumn=pNMLV->iSubItem; m_LCApps.SortItems(CompProc,(LPARAM) &m_LCApps); *pResult = 0; } |
Вот так, содрав буквально поностью из MSDN-а функцию CompProc, я пытаюсь пересортировывать данные в ЛистКонтроле по клику на заголовок. Работать не хочет. Почему? Вернее, функция сравнения вызывается, но каждый раз lParam1 и lParam2 - нули. Чего ещё надо? Или как это сделать (если всё неправильно)? |