ListBox füllen
-
Hallo
Ich habe eine Dialogfeldbasierte Anwendung, in deren Verlauf in ein anderes Dialogfeld öffne. In dieser ist eine Listbox, mit der Controlvariablen m_ctlListBoxLoadNamen. Wenn ich nun in meinem Hauptfeld den Dialog mit DoMoadal() starte und dann versuche z.B. die ListBox mit
m_ctlListBoxLoadNamen.ResetContent();
zu löschen, dann bekomme ich immmer eine Fehlermeldung folgender Art:
Debug Assertion Failed
Egal, was ich mit der Listbox machen möchte immer kommt diese Fehlermeldung. Bin ich mal wieder blind, oder wo ist mein Problem?
chrische
-
Meine Vermutung:
Du versuchst das vor OnInitDialog zu machen. Das Fenster existiert noch nicht.
Mach es NACH CDialog::OnInitDialog und es wird funktionieren.
-
Hallo
Wenn ich ehrlich sein soll, versteh ich deine Antwort nicht. Da ich den Laden-Dialog vorher mit DoMOdal() aufgerufen habe muss dieser Dialog doch schon existieren.
Bin ich auf dem Holzweg?chrische
-
Solange du mir nicht zeigst, in welcher Funktion du das versuchst, kann ich nur raten.
Drück bei der Assertion mal Wiederholen und zeigt, wo du landest.
-
sobald du DoModal() machst, steht der Fokus auf dem Dialog, den du geöffnet hast. Dann musst du alle Aktionen in diesem Ausführen. Wenn du etwas nach DoModal() schreibst, so existiert der Dialog bereits nicht mehr...
EDIT:
ps: wenn du aber einen int, CString etc hast, könntest du es so machen, da sie den angezeigten Dialog nicht erfordern. (aber keine CListCrtl, CListBox, etc die stützen auf den Dialog)
CDeinDialog dlg; // irgendwas setzen vor dem DoModal() dlg.int_irgendwas = 5; dlg.str_blabla = "jaja"; dlg.DoModal(); // irgendwas holen nach DoModal() int deinezahl = dlg.int_irgendwas; CString wort = dlg.str_blabla;
-
Hallo
Danke für euere Antworten. Mit dem Tipp von nicco konnte ich mein Problem lösen.
chrische
-
In deiner Dialogklasse gibt's die Methode "OnInitDialog".
Erst nachdem diese Methode gelaufen ist, gibt es deine ganzen Controls und du kannst damit arbeiten.
Versuchtst du davor damit zu arbeiten, gibt's diese Fehler da dann das Control noch nicht mit deiner Variablen gemappt ist.