[VC++] Sortowanie w kontrolce CListCtrl

0

Mam pytanko do fachowców z "Visual C++" (a zapewne są tutaj tacy!) odnośnie sortowania danych w kontrolce CListCtrl... Otóż po wcisnięciu nazwy dowolnej kolumny ma wywołać się funkcja sortująca wpisy na liście...

void CMyView::OnColumnclick(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here
	CListCtrl& ListCtrl = GetListCtrl();
	ListCtrl.SortItems(CompareFunc,(LPARAM)&ListCtrl);
	*pResult = 0;
}

Napisałem sobie funkcję porównującą, ale ta nie chce działać.

int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) {
	[...]
}

Nie zagłębiając się w samą realizację tej funkcji, odkryłem, że problem tkwi w tym, że za każdym wywołaniem funkcji "CompareFunc" program podaje jej jako dane wejściowe:

lParam1 = 0
lParam2 = 0

Dlaczego tak się dzieje i jak sobie z tym poradzić? Zaznaczę od razu, że gdy dodaję każdy nowy element do listy widoku "ListCtrl", to wykonuję to w taki sposób, aby lParam = iItem, mianowicie:

LVITEM lvi;
lvi.iItem = ktory;
lvi.lParam = ktory;
[...]
ListCtrl.InsertItem( &lvi );

Będę dozgonnie wdzięczny za wszelką pomoc w rozwiązaniu tego, nie dającego mi spokojnie zasnąć, problemu... Z góry wielkie dzięki!!!

Ps. Przekopałem już Google, nigdzie nikt nie wspomina, skąd bierze się błędne przekazywanie danych wejściowych dla funkcji porównującej. :(

0

A ustawiłeś

LVITEM::mask

na LVIF_PARAM

???

1 użytkowników online, w tym zalogowanych: 0, gości: 1