ListBox automatisch scrollen



  • Hallo @all,

    zunächstmal 'ne Frage vorweg. Das ListBox-Element aus dem VC-Dialog-Editor ist ein CListCtrl oder ein CListBox?

    Also ich hab das erstmal mit dem Editor angelegt. Ich fülle das Element kontinuierlich mit Werten. Das Problem: Irgendwann ist der Bildschirm voll. Es werden natürlich weiterhin Einträge hinzugefügt und der Scrollbalken wird auch immer kleiner aber ich möchte gerne, daß die jeweils letzten Einträge angezeigt werden.

    Gibts da 'ne Eigenschaft für automatisch nach unten scrollen oder muß ich mir 'ne eigene Klasse ableiten und das selber programmieren, wenn letzteres wie?

    Gruß mathi



  • Hi!

    Also um herauszukriegen wie eine Klasse zu einem bestimmten Control heißt einfach den Wizard (CTRL+W) aufrufen und eine Control-Membervariable erstellen, dann weist du die Klasse.

    Um automatisch zu scrollen, mußt du einfach folgendes machen (iItem ist dabei das letze Item in der Liste):

    CListCtrl ppp;
    ppp.SetItemState(iItem, LVIS_SELECTED | LVIS_FOCUSED, -1);
    ppp.EnsureVisible(iItem, TRUE);
    


  • Mit dem Res.Editor kann man ListBox & ListCtrl rüberziehen...

    Für das Scrollen -> CListBox::SetCurSel auf das letzte Item setzen (GetCount()-1)

    Beim ListCtrl -> EnsureVisible



  • Das SetItemState braucht man nicht. EnsureVisible reicht.



  • @PanicMan: Danke, das mit dem Wizard ist 'ne gute Idee --> Ich hab 'ne CListBox.

    @Nemesyzz: Danke, SetCurSel(..) funktioniert - und ich dachte schon, da muß ich 'wer weiß was alles' programmieren.

    Gruß mathi


Log in to reply