TinTin Geschrieben 28. August 2004 Teilen Geschrieben 28. August 2004 hi, ich stehe hier for einem kleinen problem, ich möchte alle einträge aus einer CListBox löschen. hab mitlerweile vieles versucht, aber es bleibt immer einer übrig. das codebeispiel stammt aus der msdn, aber auch da bleibt immer ein eintrag übrig. ich das ganze jetzt mal auf einen button gelegt, den muss ich aber immer 2mal drücken, damit der letzteintrag auch verschwindet. was mach ich falsch??? void CMp3ListDlg::OnLoeschen() { for (int i=0;i < m_ctlListFile.GetCount();i++) { m_ctlListFile.DeleteString( i ); } UpdateData(false); } ciao TinTin Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 28. August 2004 Teilen Geschrieben 28. August 2004 Überleg doch mal genau, was der Code macht: Angenommen, deine Listbox hat drei Einträge, dann löscht zu zuerst den Eintrag mit dem Index 0, zwei bleiben übrig. Dann löschst du den Eintrag mit dem Index 1, bleibt einer. Dann willst du den Eintrag mit dem Index 2 löschen. Aber es ist ja nur noch einer drin, und der hat den Index 0 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dieterds Geschrieben 30. August 2004 Teilen Geschrieben 30. August 2004 Gibts da nicht auch so einen generellen Befehl á la m_ctlListFile.clear(); Glaube sowas hab ich immer benutzt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crush Geschrieben 30. August 2004 Teilen Geschrieben 30. August 2004 Probier mal: m_ctlListFile.ResetContent(); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TinTin Geschrieben 3. September 2004 Autor Teilen Geschrieben 3. September 2004 ok, ok ... zuerst hab ich es so if (m_ctlListFile.GetCount() > 0) { while (m_ctlListFile.GetCount() != 0) { m_ctlListFile.DeleteString( 0 ); } } gemacht. dann hab ich den eigentlichen fehler gefunden. ich hab die msdn nicht richtig gelesen, aber warum einfach wenn es auch schwierig geht. :floet: ps: war ne weile weg, sorry das ich nicht früher auf eure post reagiert habe Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Honkytonk Geschrieben 3. September 2004 Teilen Geschrieben 3. September 2004 Entweder so. Oder wenn du nur bestimmte Einträge aus der Listbox löschen möchtest einfach den Counter Rückwärts von dem maximalen Wert bis 0 laufen lassen. Also entgegen zu deinem Beispiel umdrehen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dieterds Geschrieben 6. September 2004 Teilen Geschrieben 6. September 2004 Du könntest auch ganz einfach: while (m_ctlListFile.GetCount() != 0) { m_ctlListFile.DeleteString( 0 ); } machen, da die Schleife nur durchlaufen wird, wenn ein Wert vorhanden ist Dadurch sparst du die IF-Abfrage. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TinTin Geschrieben 7. September 2004 Autor Teilen Geschrieben 7. September 2004 oder halt einfach ... Probier mal: m_ctlListFile.ResetContent(); ciao TinTin Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.