Modal Dialog: wie Zugriff auf Hauptdialog?

Konsumierer

Mitglied
Hallo,

habe mit der MFC eine dialogbasierte Anwendung geschrieben. Aus dem Menü kann ich einen neuen Dialog öffnen, in dem Checkboxen sind. Den Inhalt dieser Checkboxen speichere ich zunächst als Member Variable innerhalb des Dialogs ab.
Nun soll beim Drücken des OK Buttons der Dialog geschlossen werden und mein Hauptdialog von den Checkboxen in Kenntnis gesetzt werden.

Da dachte ich mir, ich mache im Hauptdialog neue Member Variablen und eine Memberfunktion, die ich beim Drücken des OK Buttons aufrufe und die dann die Member Variablen des Hauptdialogs aus den Member Variablen des Dialogs speichert.

Problem: Welchen Namen hat das Hauptdialog Objekt?

Oder geht es anders noch viel einfacher? Vllt mit extern Variablen?
 
Wenn Du den Dialog mit DoModal() anzeigst, kannst Du nach dessen Beendigung aus der aufrufenden Funktion immer noch auf die public-Variablen des Dialogs zugreifen, solange das Dialogobjekt noch nicht zerstört ist (z.B. mit delete pDialog, wenn Du das Dialogobjekt mit new erzeugt hast). Du kannst die Werte also einfach mit 'Variable = pDialog->m_Variable;' auslesen.
Grüße, jokey2
 
Hinweis: Das gilt latürnich nur für echte Variablen, die CheckBox-Klassen (bzw. CButtons) lassen sich dann nicht mehr abfragen!
 
Okay.

Ich bring das Programm jetzt wieder zum laufen, allerdings hat es noch nicht die gewünschte Funktion.

Wenn ich mit dem Klassenassistent neue Member-Variablen für die Checkboxen anlege, von welchem Typ müssen die dann sein? BOOL oder CButton?
 
Wenn Du nach Beendigung des Dialoges noch darauf zugreifen willst, dann müssen sie vom Typ BOOL sein. Du mußt allerdings im OnOK() die Funktion UpdateData(TRUE) aufrufen, um die Werte von den Controls in die zugeordneten Variablen zu übertragen.
Grüße, jokey2
 

Neue Beiträge

Zurück