Variable von Unterdialog an Hauptfenster übergeben
-
Hallo,
der Titel sagt es eigentlich schon. Ich muss aus dem Hauptdialog mit DoModal
einen neuen Dialog aufrufen, in dem ein paar Eingaben gemacht werden.
Nun muss aber mein Hauptfenster, sobald ich dorthin zurück kehre, davon
auch Wind bekommen.Wie setzt man das am besten um? Habe sowas bislang noch nie gebraucht und es geht auch nur um 3 CString die ich zurück haben möchte.

-
Dann hast Du doch in dem Unterdialog, 3 an Controls gebundene Strings, die Du vor DoModal befüllst und bei Ergebnis IDOK auslesen kannst...
Worin siehst Du das Problem?
-
Vielleicht verstehe ich es ja falsch, aber vor DoModal mache ich ja noch gar nichts.
Erst wenn der Dialog sichtbar ist, gebe ich in die Editfelder meine Werte ein.
Dann schließe ich den Dialog und nun muss ich aus der Klasse des Unterdialoges
die Variablen durchreichen. Und genau da weis ich nicht wie man es macht,
da die Variablen ja nur in der Klasse des Unterdialoges bekannt sind
-
Naja füge für die Edit-Controls CString-Variablen im Editor hinzu und schreib dir get-Methoden für die Strings
-
Auch wenn ihr mich gleich lüncht
Was meinst du mit Get-methoden?
Klar, irgendwie durchreichen der Variablen, aber wie sieht das praktishc aus?
Thx für eure Geduld
-
class Foo { CString m_name; public: const CString& getName() { return m_name; } };
-
Ich glaube es verstanden zu haben, obgleich ich es jetzt noch nicht probiert habe (mache ich gleich):
Ich habe im Unterdialog in der Klasse eine Funktion die als Rückgabewert
eine meiner 3 Variablen auspuckt. Der Aufruf erfolgt also aus dem Hauptdialog:#include "CUnterdialog.h" CUnterdialog meiner; CString rtv; rtv = meiner.getVar(); MessageBox(rtv,"Wert aus dem Unterdialog");Dann ist es also so, dass die Variablen des bereits wieder geschlossenen
Unterdialoges dauerhaft vorhanden bleiben, ja? Damit wäre jederzeit ein
Abruf der Werte (von wo auch immer) möglich.Dann ist mein Problem gelöst

-
Platzier den Dialog als Membervariable in Deinen Hauptdialog.
-
Verstanden, umgesetzt und funktioniert.
Besten Dank an euch
