CListCtrl Eintrag markieren

x_Red_Eagle_x

Erfahrenes Mitglied
Ich habe in meinen Prog. ein CListCtrl in Verwendung und hab eine Suchfunktion implementiert.
Es funktioniert alles soweit, bis auf das Markieren eines Eintrages.
Mir ist bewusst das man einen Eintrag mit dem Befehl SetSelectionMark(int pos) markiert, jedoch wird er nur selektiert und graphisch nicht makiert (es soll jedoch beides geschehen.

hat jemand eine ahnung wie ich das hinbekomme?

mfg und im voraus
 
danke für den ansatz

leider hab ich 2 dialoge -> der such- dialog im vordergrund und ein anderes fenster mit dem CListCtrl im hintergrund -> bekomm ich das auch irgendwie hin dass der eintrag markiert ist obwohl im vordergund ein dialog ist?
 
Zum Markieren verwendest Du folgendes:
Code:
SetItemState(nItemIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);

Das Ganze muß freilich noch mit dem Variablennamen für Dein CListCtrl-Objekt qualifiziert werden (also listcontrolvariable.SetItemState(...)). nItemIndex enthält den Index des Items, das markiert werden soll (wärst Du wahrscheinlich von selbst drauf gekommen... ;) )

Damit die Markierung erhalten bleibt, wenn das Fenster (das Control besser gesagt) den Fokus verliert, mußt Du beim Erstellen mittels Create(...) beim ersten Parameter (dwStyle) ein LVS_SHOWSELALWAYS in die Kombination aufnehmen (per binärem ODER).

Beispiel:

Code:
Create(LVS_REPORT  |  LVS_SINGLESEL | LVS_SHOWSELALWAYS, rect, this, ID_LISTCTRL)
 
Zuletzt bearbeitet von einem Moderator:
Zurück