Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

einträge aus CListBox löschen...???(C++VS6.0/MFC)

Empfohlene Antworten

Veröffentlicht

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

Ü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 ;)

Gibts da nicht auch so einen generellen Befehl á la

m_ctlListFile.clear();

Glaube sowas hab ich immer benutzt.

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

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.

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.

oder halt einfach ...

Probier mal: m_ctlListFile.ResetContent();

ciao TinTin

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.