ListView lässt sich nur einmal füllen



  • Ich habe eine Funktion Display(), die eine Datei durchsucht und die entsprechenden Datensätze in einem Listview anzeigt, :

    void Display(HWND hw, char Datei[])
    {
         LV_ITEM LVItem; 
         ListView_DeleteAllItems(hw);
         LVItem.iItem=0;
         LVItem.iSubitem=0; 
    ...     
         LVItem.pszText=Datastring;         //  String wird stets korrekt ausgelesen 
         LVItem.iImage=5;                   //  ImageList ist erzeugt, Bitmap ist gültig!
         if(ListView_InsertItem(hw,&LVItem)==-1)
         MessageBox(0,"Item einfügen gescheitert!",0,0);
         LVItem.iItem++;
    ...     
    }
    

    Beim Start des Programmes rufe ich die Funktion nach WM_CREATE auf, klappt wunderbar. Danach ist allerdings Sense, ein zweiter Aufruf von Display() irgendwo im Programm leert das ListView zwar, allerdings erscheinen keine neuen Items mehr, die MessageBox nach ListView_InsertItem() bleibt aber still.
    Kennt jemand dieses Problem ? Bin für jede Hilfe dankbar.

    Grüße

    Biff



  • moin meister ...

    ich glaube ich hatte auch mal das Problem am Anfang, bin mir nicht ganz sicher
    ob dies der Fehler war.

    ListView_DeleteAllItems(hList);
    while( !db_view.eof() )
    {
        lvi.iItem		= ListView_GetItemCount(hList); // Lösung des Problems ???
        lvi.iSubItem	= 0;
        lvi.pszText	= szBuf1;
        lvi.cchTextMax    = lstrlen(szBuf1);
        ListView_InsertItem(hList, &lvi);
        db_view.NextRec();
    }
    

    mfg
    RB


Anmelden zum Antworten