Eingabe aus Dialog löschen
-
Hallo,
ich gebe in einen Dialog mehrere Eingaben ein. Diese will ich nach dem Schliessen des Dialogs wieder löschen, dass wenn ich den Dialog danach noch einmal aufrufe keine Werte mehr darinstehen. Gibt es eine Funktion die das tut? (habe OnCancel etc. ausprobiert. Dies schliesst zwar das Fenster, die Eingaben bleiben aber enthalten, wenn ich den Dialog gleich danach nocheinmal aufrufe).
Noch eine weitere Frage.
In meiner Anwendung gibt es ein Feld in die eine (mehrstellige) Zahl eingetragen werden soll. Dort steht dann immer schon eine 0. Gibt es eine Möglichkeit dies zu löschen, dass also ein "leeres" Feld da steht?Danke.
-
ich gebe in einen Dialog mehrere Eingaben ein. Diese will ich nach dem Schliessen des Dialogs wieder löschen, dass wenn ich den Dialog danach noch einmal aufrufe keine Werte mehr darinstehen. Gibt es eine Funktion die das tut?
Meines Wissens nach gehts das so nicht, da die Eingabefelder etc. in deinem
Dialog ja mit Variablen verknüpft sind.Nach der MESSAGE_MAP Behandlung behalten die Variablen aber den Inhalt:
d.H. setze die Variablen in die OnClose() Funktion manuell zurück.
In meiner Anwendung gibt es ein Feld in die eine (mehrstellige) Zahl eingetragen werden soll. Dort steht dann immer schon eine 0. Gibt es eine Möglichkeit dies zu löschen, dass also ein "leeres" Feld da steht?
Ja, setze in der OnInitDialog() Funktion
die jeweilige Variable manuell zurück.
-
Moment!
Wenn du eine Dialog hast den Du schließt dann wird dieser eigentlich aus einem anderen Dialog aufgerufen. (DoModal,Create)
Da sollte dann eigentlich nichts übrig bleiben weil die Klasseninstanz des Dialoges ja auch gelöscht wird. (normalerwiese)
MyDlg mdlg; mdlg.DoModal(); // Hier ist noch alles vorhanden was im Dialog eingegeben wurde return true; // ende der Funktion
Nach den Return sollte mdlg nicht mehr existrieren u7nd somit alles eingegebene weg sein.
-
ich weiss, dass meine Felder mit Variablen belegt sind. Ich lese dies ja in eine DB ein. Was ich wissen wollte ist, ob es eine Möglichkeit gibt diese automatisch zurück zu setzten (wollte das manuelle umgehen).
jup, ich rufe ihn aus einem anderen auf (per DoModal). nur nach dem schliessen und erneuten öffnen stehen dort immernoch die werte
-
Dann poste mal etwas mehr Code den wenn die Klasseninstanz weg ist bleibt auch nichts übrig. (Wenn du es nicht schon vorher selbst reinschreibst)
Aber komm mir jetzt bitte nicht damit das Du
MyDlg mdlg;
in deiner Header drin hast und nicht nur in der Aufruffunktion drin ist.
Den dann empfehle ich dir ein Buch über C++.
-
Hallo
danke für die schnelle Hilfe!!!!!!
ich hab' die Instanzen schon in der Aufruffunktion stehen (hab' mich ja vorher hier im Forum schlau gemacht
).
Irgendwie war in meinem Projekt der Wurm drin (konnte es am Ende noch nichtmal mehr kompilieren). Habe es dann nochmal "neu" geschrieben und jetzt klappt alles wunderbar bis auf die "0", die immernoch im Eingabefeld (in diesem Feld soll eine Nummer eingegeben werden) steht, wenn ich den Dialog aufrufe.
-
Die 0 ist normal wenn du eine Zahlenvariable zugeordnet hast.
Ich nehme deswegen CStrings und arbeite mit atol und Format.
-
Danke für den Hinweis mit dem atol. Werde es bei Gelegenheit mal ausprobieren...