FindItem() in CListCtrl
-
Hi,
weiss jemand wie man eine einzelne Zeile eines CListCtrl per Angabe des Zeileindexes LVS_EX_FULLROWSELECT-mässig markieren kann, zB. wenn FindItem die Zeile gefunden hat.
Wie kann man eigentlich FindItem dazu bewegen, nicht nur in der ersten Spalte zu suchen?
Tipp wäre nett, hab in der MSDN nichts gefunden. v
Gruss
koreson
-
Mit FindItem() weis ich leider nicht wies geht, aber du könntest es folgendermaßen versuchen:
int nItemCount; CString str; int j=0;//j gib in der for-schleife dann die Spalte an nItemCount = m_ctlListCtrl.GetItemCount(); for(int i=0; i<nItemCount; i++) { str = m_ctlListCtrl.GetItemText(i,j); MessageBox(str); j++; }
Zwischendurch überprüfst du dann grad mit ner if-abfrage ob der text = dem suchstring ist.
Gruß
Chris
-
CListCtrl::SetSelectionMark
ich habs zwar noch nie verwendet aber es klingt doch gut...
-
Hi,
Danke für die raschen Tipps.
Werd gleich mal ans Probieren gehen.
gruss
koreson
-
tuempl schrieb:
CListCtrl::SetSelectionMark
SetSelectionMark markiert nichts. Dafür gibt's SetItemState.
-
Also mit pListCtrl->SetSelectionMark(nIndex); ist leider nix.
markiert nur die erste Zeile einer MehrfachauswahlSchade
-
Also mit pListCtrl->SetSelectionMark(nIndex); ist leider nix.
markiert nur die erste Zeile einer MehrfachauswahlSchade
-
Mit
nIndex=pListCtrl->FindItem(&info,-1); if(nIndex != -1) { pListCtrl->SetFocus(); pListCtrl->EnsureVisible(nIndex+10, FALSE); pListCtrl->SetItemState(nIndex, LVIS_SELECTED, LVIS_SELECTED); }
geht alles glatt.
1000 Dank
-
Also, nur der folständigkeits halber könntest de ja mal schreiben was info für "einstellungen" hat.