schorschi Geschrieben 23. Juni 2007 Geschrieben 23. Juni 2007 Hallo, kann mir jemand sagen wie ich beim Listenelement per Quellcode selektieren oder markieren kann ? So wie bei einer Combo mit SetSel() ? Irgendwie finde ich die geeignete Methode. Mit SetHotItem() wird ja nur eine einzelne Zeile mit der Schrift hervorgehoben. Sys: W2K Sprache VC6 danke
MacGyver2k Geschrieben 24. Juni 2007 Geschrieben 24. Juni 2007 Hi, ich geh mal davon aus, dass du einen Listeneintrag in einer Listbox aus der MFC meinst. Zu meinem Verwundern habe ich dort aber nur eine Methode SetCurSel(int) gefunden die mir auch schon so bekannt ist. Mit der kannst du dann auch das gewünschte Element markieren. Ich hab mal einen kleines Beispiel: void CListenelementDlg::OnButton1() { int i=0; for (i=0; i < 10; i++) { m_lbListbox.AddString( "Eintrag" ); } }[/PHP] m_lbListbox ist bei mir eine Controll-Variable für die Listbox. gruß, MacGyver2k
Klotzkopp Geschrieben 25. Juni 2007 Geschrieben 25. Juni 2007 Ich glaube, er meint CListCtrl. Die gesuchte Methode wäre dann CListCtrl::SetItemState, mit dem Flag LVIS_SELECTED.
schorschi Geschrieben 25. Juni 2007 Autor Geschrieben 25. Juni 2007 Klotzkopp hat recht. Ich meine nicht die ComboBox. Danke, habs mir angesehen und hinbekommen.
Hexagon Geschrieben 25. Juni 2007 Geschrieben 25. Juni 2007 Moin, Kleine Frage am Rande. Ich glaube, er meint CListCtrl. Die gesuchte Methode wäre dann CListCtrl::SetItemState, mit dem Flag LVIS_SELECTED. Gab es beim ListCtrl nicht CListCtrl::SetSelectionMark(int iIndex)? Sollte doch auf das gleiche hinaus führen, oder?
schorschi Geschrieben 25. Juni 2007 Autor Geschrieben 25. Juni 2007 Kann ich Dir im Augenblick nicht sagen, ich hatte einige Funktionen ausprobiert welche nicht zum Erfolg führten, bis ich Klotzkopps Ratschlag versuchte umzusetzen. Da habe ich dann mehr oder weniger zufällig den Focus auf das Listenelement gesetzt und dann hat es funktioniert. Mag sein das auch andere Funktionen das gewünschte Ergebnis liefern. Gruß
Klotzkopp Geschrieben 26. Juni 2007 Geschrieben 26. Juni 2007 Gab es beim ListCtrl nicht CListCtrl::SetSelectionMark(int iIndex)? Sollte doch auf das gleiche hinaus führen, oder?Nein, SetSelectionMark setzt nur die Anfangsmarkierung einer Mehrfachauswahl. Aus der MSDN Library: The selection mark is the item index from which a multiple selection starts. This macro does not affect the selection state of the item. Da habe ich dann mehr oder weniger zufällig den Focus auf das Listenelement gesetzt und dann hat es funktioniert.Funktioniert hat es schon vorher, du hast es nur nicht gesehen. Das List Control zeigt normalerweise nur dann seine Auswahl, wenn es den Focus hat. Wenn du willst, dass es die Auswahl immer zeigt, musst du den Style LVS_SHOWSELALWAYS setzen.
Hexagon Geschrieben 26. Juni 2007 Geschrieben 26. Juni 2007 Verdammt! Wieder einmal der Fall "wer lesen kann ist klar im Vorteil". Danke Klotzkopf! :e@sy
schorschi Geschrieben 26. Juni 2007 Autor Geschrieben 26. Juni 2007 Dito auch von meiner Seite nochmals danke.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden