Kommunikation zwischen Dialogen
-
Hallo,
habe eine Mehrdialoganwendung, nu will ich aus meinem Hauptdialog in einen Unterdialog den ich gerade öffne eine Variable übergeben, wie geht das?
Ich öffne den Dialog mit DoModal().Habe versucht einfach mit Hilfe einer membervariable des neuen Dialogs die Variable in den neuen Dialog zu schreiben, aber wenn er dann in dem neuen Dialog ist ist die Variable unbelegt, so gings also nicht.
Vielleicht kann mir jemand helfen und sagen wie man das macht.
Danke
neu Hier
-
hallo, hab ich meine Frage falsch gestellt, also weiß keiner was ich meine oder wisst ihr es auch nicht oder ist die Antwort zu trivial?
-
Hi!
Also mich würde eine Antwort auf die Frage auch interessieren...

-
Ich glaub das war so, dass man im DoModal() eine Variable hatte (also im neuen Fenster) und dann hat man einfach die Variablen mit "." verknüpft.
Also dem neuen Deialog ne Variable zuweisen (Typ halt wie der Dialog heist und name wie ihr wollt)
z.B.
m_Hauptfenstervariable.m_Nebenfenster.<befehle oder was anderes>Bin mir aber nicht wirklich sicher.
Ist aber schon nen weilchen her, dass ich das gemacht hab. da müsste ich erst meine platte durchsuchen und ich bin leider gerade nicht am heimischen PC sondern auf Arbeit. Wenn kein anderer das heute mehr postet oder ne lösung parat hat, könnte ich das gegen 20 uhr nochmal machen.Oder schau mal in "c++ in 21 Tagen" nach, da steht was dazu drin glaub ich.
EDIT:
hab das was rausgepickt:1: void CDialogsDlg::OnBnClickedBcustomdialog() 2: { 3: // TODO: Fügen Sie hier Ihren Kontrollbehandlungscode für die 4: // Benachrichtigung ein. 5: // Meldungsdialog anzeigen und Ergebnis auffangen 6: if (m_dMsgDlg.DoModal() == IDOK) 7: { 8: // OK geklickt, Nachricht anzeigen, die Benutzer im 9: // Nachrichtendialog eingegeben hat 10: m_strResults = m_dMsgDlg.m_strMessage; 11: // Dialogfeld aktualisieren 12: UpdateData(FALSE); 13: // Schaltfläche Welche Option aktualisieren 14: m_cWhichOption.EnableWindow(TRUE); 15: } 16: }ich glaube m_strResult war ne Var vom Hauptdialog und m_dMsgDlg ist der Neue Dialog und m_strMessage ist eine Variable IM neuen Dialog.
-
das ist ja das Beispiel aus c++ in 21 Tagen, hier wird es aber so gemacht das ein Dialog mit doModal aufgerufen wird und die Variable dann ins Hauptfenster zurückübertragen beim schließen.
Ich brauche es ja andersrum, also ich will einem Dialog den ich öffne eine Variable mitschicken, dass Problem ist ich kann nuicht einfach einer Variable des 2. Fensters etwas zuweisen, da dieses ja noch nicht so richtig existiert, er merkt sich dann die Variable nicht
-
neu Hier schrieb:
dass Problem ist ich kann nuicht einfach einer Variable des 2. Fensters etwas zuweisen, da dieses ja noch nicht so richtig existiert, er merkt sich dann die Variable nicht
Das kannst du schon, es darf eben nur keine Steuerelementvariable sein. Wertvariablen oder Variablen, die gar nicht mit Steuerelementen verknüpft sind, kannst du durchaus etwas zuweisen.
-
aber mit einer Membervariable geht es bei mri auch nicht, also darf es wohl auch keine Membervariable sein, und wenn keine Membervariable, weiß ich nicht wo ich die DEklarieren soll
-
Zeig mal Code, meine Kristallkugel ist heute so trüb.

-
neu Hier schrieb:
aber mit einer Membervariable geht es bei mri auch nicht,
"Geht nicht" ist keine ausreichende Fehlerbeschreibung.
also darf es wohl auch keine Membervariable sein,
Bloß weil "bei dir" etwas "nicht geht", heißt das nicht, dass es grundsätzlich nicht geht. Vermutlich machst du irgendwas falsch. Ohne Kenntnis deines Codes kann man aber kaum sagen, was das genau ist.