[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.


Anmelden zum Antworten