LVM_GETSELECTEDCOUNT liefert immer nur 1 zurück, wieos ?



  • Hallo,
    ich habe mir in meinem Programm ein Listview angelegt, in jedem Element steckt eine struct, die wiederum in einer Liste gespeichert wird.

    typedef struct WINDOWS {
    
        int index;
        HWND window;
        HWND parent;
        char szWindowName[ 256 ];
        char szParentName[ 256 ];
        char szlooked[ 16 ];
    
    } Windows;
    
    list< Windows > wndContainer;
    list< Windows >::iterator iter;
    

    Nun möchte ich mit LVM_GETSELECTEDCOUNT, den Index des jeweils mackierten Elemants zurück geben lassen, um später dann genau nach dem Index in meiner Liste zu suchen.

    bool isFound = false;
    int index = (int)SendMessage( hWnd_lv, LVM_GETSELECTEDCOUNT, 0, 0 );
    
    for( iter = wndContainer.begin( ); iter != wndContainer.end( ); iter++ ) {
    
       Windows helper = *iter;
    
       if( helper.index == index ) {
    
          ShowWindow( helper.window, SW_SHOW );
          isFound = true;
       }
    }
    
    if( !isFound ) {
    
       MessageBox( 0, "Couldn't found the window handle of selected item!",
                   "Error!", MB_OK | MB_ICONERROR );
    }
    

    Aber wie gesagt liefert dieser Ausdruck lediglich immer nur 1 zurück, so das immer nur das zweite Element in meiner Liste angesprochen wird.

    Hat hier vieleicht jemand konstruktive Vorschläge, was hier falsch läuft?

    Danke!

    Gruß Tobi.



  • LVM_GETSELECTEDCOUNT ist die Nachricht, die die Anzahl der in einer Liste selektierten (also ausgewählten) Elemente ermittelt.

    Was du (wahrscheinlich) suchst, ist unter dem Stichwort LVM_FINDITEM bzw. dem zugehörigen Makro ListView_FindItem beschrieben.



  • oh jetzt wo dus sagst und ich mir den namen GETSELECTEDCOUNT durchlese, hmm stimmt.
    Aber wie soll ich dann das item rausfinden, welches gerade selektiert ist?, finditem muss ich doch auch erst noch mit infos füttern, wie soll das gehen?

    Gruß Tobi.



  • Du brauchst LVM_GETNEXTITEM.



  • jo danke MFK, genau das hab ich gesuch.

    Gruß Tobi.


Anmelden zum Antworten