CListCtrl - Frage



  • Hi!
    Also mein Problem:

    An einem ListCtrl habe ich im Ressourcen-Editor Mehrfachmarkierung eingestellt. Und wenn ich durch die Liste navigieren will (nicht mit der Maus, sondern so:

    m_ListCtrl.SetSelectionMark( m_ListCtrl.GetSelectionMark() + 1 );
    m_ListCtrl.SetItemState(m_ListCtrl.GetSelectionMark(),          LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
    

    ), dann kriege ich die vorherige Markierung nicht weg.
    Wo liegt der Fehler, weiss es jemand?

    Danke



  • Was willst Du eigentlich genau erreichen?!?

    Um alle markierten Positionen zu ermitteln gibt es
    GetFirstSelectedItem
    und
    GetNextSelectedItem...
    oder so ähnlich...

    Hilft Dir das?



  • Hi!
    Meine Frage, eigentlich wäre, wie ich die Markierung von der markierten Zeile wegnehme und auf die andere setze (ohne Mausklick !)

    Auf eine andere setzen klappt es, aber die vorher markierte Zeile bleibt nach wie vor markiert



  • Probier mal anstelle von

    LVIS_SELECTED
    

    einfach

    ~LVIS_SELECTED
    

    Habe ich aber noch nicht getestet...



  • m_ListCtrl.SetItemState(m_ListCtrl.GetSelectionMark(), NULL, LVIS_SELECTED | LVIS_FOCUSED );
    so müsstest du die markierung wegbekommen



  • HI!

    Ich danke euch! Es klappt in beiden Fällen



  • ich habe ein aehnliches problem

    ich habe eine CXListCtrl Liste. Dort stehen dann verschiedene Eintraege.

    Ich habe ein BUTTUON UP und DOWN

    Jetzt kann ich eine Zeile selektieren und dann durch UP mit der obigen Zeile tauschen.

    Bei Einer Listbox bleibt der neue Focus auf der neuen Zeile so kann ich dann z.b. den letzen eintrag durch x maliges klicken auf UP ganz nach oben verschieben.

    Bei der CXListCtrl verschwindet die blaube markierung.

    Habe eine globale variable m_sel_pos

    habe es mit

    SetCurSel und mit m_testsuite.SetSelectionMark( SetCurSel); versucht geht aber beides nicht.

    die zeilen habe ich am schluss der UP Button fkt geschrieben.

    hab auch testhalber m_testsuite.SetSelectionMark( 1);

    als test verscuht geht auch nicht.

    was kann ich da machen????


Anmelden zum Antworten