Dialog
-
Guten Morgen,
danke - das Buch nutze ich eigentlich ständig
Na ja, man übersieht auch schon mal wasWerd jetzt nachschauen...
Nico
-
Ich hab jetzt in verschiedenen Tutorials und Referenzen nachgelesen, aber nichts zu meinem Problem gefunden.
Ferner habe ich noch eimal rumgebastelt - es müsste so doch richtig sein...
In der Header-Datei des **Standarddialoges die public Member-Variable definiert und in der gleichen Klasse, also in dem Dialog, in einer Funktion der Variabel einen Wert verpasst.
Von dem anderen Dialog aus muss ich dann doch die Variabel sehen können!? "Nichtdeklarierter Bezeichner" kommt jedoch...
Nico**
-
Hmm, wenn ich dir richtig verstehe, dann versuchst du auf eine Membervariable einer Fremden Klasse zuzugreifen, das geht nicht so einfach.
1. Auf klassenmember greift man so zu: Klassenname.Member
oder wenn der klassenaame ein Pointer ist: Klassenname->Member2. Die klasse muß bekannt sein. Die variable muß public sein.
3. Eine child-klasse kennt Ihre Vaterklasse nicht. Es sei denn, die Vaterklasse übergibt der childklasse einen pointer von sich (this).
So, jetzt überleg was auf dich zutrifft.
-
1, 2 oder 3, letzte Chance - vorbei
1<<<
MessageBox(Cklasse.m_code);
dann sollte das z.B. funktionieren...
-
Hmm, glaube ich eigentlich nicht das es so funktioniert.
Ich würde sagen du machst es so:
<<< Dialog1 >>>
Hat als Member einen String m_strMemo.
Irgenwo wird dann der Dialog2 deklariert und aufgerufen.CDialog2 dlg;
dlg.m_strIrgendwas = m_strMemo;
dlg.DoModal();<<<Dialog2>>>
Weis normallerweise nicht von wem er aufgerufen wurde. Kann es aber wissen, wenn er z.B. einen Member
CDialog2* dlgParDlg;
hat (mann muß dazu den Header von CDialog2 einbinden, kann problemme machen), dann kann man den aufruf im Dialog1 so erweitern:
dlg.dlgParDlg = this;
danach kann man im Dialog2 auch folgendes machen:
m_strIrgendwas = dlgParDlg->m_strMemo;
Ok, ich hoffe jetzt hast du es kappiert... ´wenn noch Fragen, bitte posten.