Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Clistctrl.sortitems fehler?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.11.2002, 10:25 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hallo,
ich versuche die Items einer ListCtrl im Reportstyle zu sortieren, und hab dazu die Funktion aus der MSDN benutzt, nur: Er bekommt immer nur als erstes und 2tes Item das gleiche ergebnis, nämlich 0! Er sortiert dadurch natürlich nicht ...

Hat einer eine Idee was ich falsch gemacht hab?


C++:
int CALLBACK SortNames(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
[b]  // lParam1 und lParam2 sind immer 0![/b]
  CListCtrl* pListCtrl = (CListCtrl*) lParamSort;
  CString    strItem1 = pListCtrl->GetItemText((int)lParam1, 0);
  CString    strItem2 = pListCtrl->GetItemText((int)lParam2, 0);

  return strcmp(strItem2, strItem1);
}

// ...

[b]// so ruf ich die Sortierfunktion auf: (so steht es auch in der MSDN)[/b]
m_lcKeyList.SortItems(SortNames,(LPARAM)&m_lcKeyList);



--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.11.2002, 10:46 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Das hab ich mal in der FAQ von einem anderen Forum geklaut
When my sorting callback function is called, why are lParam1 and lParam2 always 0?

Some versions of the documentation on CListCtrl::SortItems and LVM_SORTITEMS seem to imply that the values of lParam1 and lParam2 are the indices of the items to be sorted. This is not the case. They are the 32 bit values that can be assigned to each item via CListCtrl::SetItemData or via the lParam member of the LVITEM struct. If you have not assigned any data to these variables, then they will be zero when passed to your sort function.


www.codeguru.com/listview/sort_on_col_click.shtml
www.codeguru.com/listview/indicating_sort_order.shtml

mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.11.2002, 10:51 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


habs auch grad gefunden vielleicht sollte man vorher schaun, dann posten

Man muss folgendes beim hinzufügen der Items machen:


C++:
int iItem = m_lcKeyList.GetItemCount();
m_lcKeyList.InsertItem(iItem,"Item");
[b]m_lcKeyList.SetItemData(iItem,iItem); // <-- Das ist wichtig! sonst kommt bei den lParams immer 0[/b]
m_lcKeyList.SetItemText(iItem,1,"SubItem");


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: