ListControl Zeite markieren
-
Ich würde gerne in einem ListControl eine bestimmte Zeile so markieren, dass ich sie mit einer anderen Methode mit
GetFirstSelectedItemPosition();
und
GetNextSelectedItem(pos);
auslesen kann.
Geht das überhaupt, oder MUSS ich die Zeile mit der Maus selectieren??
-
Das Item Style bits LVIS_SELECTED setzen - entweder über LVITEM struct, oder listView.SetItemStyle
-
Ich habe hier etwas rumprobiert, habe es aber nicht geschafft. Kannst du mir etwas genaueres sagen?
also: SetItemStyle ; diese Methode hat List Control bei mir garnicht.
Ich habe versucht mitif (list.GetSelectionMark()==-1){ list.SetSelectionMark(0); }
zu markieren. Das funktioniert aber auch nicht...
Wie kann man denn über LVITEM-Struct, oder über LVIS_SELECTED ans Ziel kommen? Kannst du mir ein Beispiel geben?Dankeschön
-
Bis jetzt wird beim NM_CLICK Ereignis eine Funktion OnClickedList() ausgelöst. Diese Methode macht mit dem Eintrag, der angeklickt wurde eine Aktion.
Jetzt möchte ich, dass diese Aktion aber automatisch in jedem Fall mit dem ersten Eintrag gemacht werden soll, auch wenn man noch nichts angeklickt hat.
OnClickedList hat aber leider die Parameter: NMHDR* pNMHDR, LRESULT* pResult.
Darum weiß ich nicht, wie ich OnClickedList von außen aufrufen kann.
-
@Theoderich:
Sorry, ist SetitemState nicht ~Stylem_list.SetItemState(itemIdx, LVIS_SELECTED /* value */, LVIS_SELECTED /* mask */);
Für dein zweites problem - wäre ja dann besser, die Aktion in einen separate Memberfunktion auszulagern, und diese von beiden Stellen aufzurufen.
-
Dankeschön. Damit klappts.
Auch die Idee mit der zusätzlichen Memberfunktion habe ich aufgenommen. Danke!