[CListCtrl] Mehrfachauswahl mit SetSelectionMark() ?
-
Hi,
hab folgendes Problem:
Hab eine CListCtrl, wobei 3 Items eine Sinneinheit bilden. Also sind die Einträge immer ein Vielfaches von 3. Wird jetzt auf eines der 3 zusammengehörenden Items geklickt, sollen alle 3 Items hervorgehoben werden. Ich fange dazu NM_CLICK ab. Jetzt weiss ich nicht, wie ich die 3 Items markiert bekomme.
Hat jemand einen Rat?Danke,
don_basto
-
Hab folgenden Weg gefunden:
GetListCtrl().SetItemState(nmItem->iItem, LVIS_SELECTED, LVIS_SELECTED); GetListCtrl().SetItemState(nmItem->iItem+1, LVIS_SELECTED, LVIS_SELECTED);
Etwas unschön ist aber, dass zuerst das gewählte Item markiert wird und erst etwas später die Items, welche ich in der OnClick()-Methode zusätzlich markiere.
Gibt's einen besseren Weg?
-
Bin mit der Lösung nicht glücklich.
Zwar bekomme ich mit SetItemState() die Items markiert, aber beim zweiten Klick löscht sich auf wundersame Weise die Markierung. Allerdings gibt GetItemState() noch LVIS_SELECTED zurück. Genauer bleibt nur LVIS_FOCUSED markiert, was maximal einer der 3 gemeinsamen Items sein kann.