Veröffentlicht 9. März 200619 j Hi... Ich moechte/muss in einem Dialog der Klasse CDialog auf Daten die in der Klasse ApplicationDoc gespeichert sind. Habe es mit untem dem code probiert aber da kommt beim compilieren die Fehlermeldung, dass er die Befehle(z.B. GetDocumet) nicht kennt. CApplicationDoc* pDoc = static_cast<CApplicationDoc*>(GetDocument()); Also meine Frage: Wie kann ich auf Variablen von ApplicationDoc in der Klasse CDialog zugreifen? Gruss!
10. März 200619 j Soviel ich mich grad erinnern kann, hat eine von CDialog abgeleitete Klasse kein Document. Wenn der Dialog aber als Child von z.B. CMainFrame erzeugt wurde, so kann man das per GetParent()->GetDocument() lösen....glaub ich zumindest...
10. März 200619 j Loki876, ich glaube, du hast etwas Grundsätzliches noch nicht verstanden. Du fragst immer wieder, wie du an Methoden (Befehle gibt's strenggenommmen in C++ nicht) von Klasse X aus Klasse Y herankommst. Dabei ist das gar nicht dein Problem. Du willst nicht an CView::GetDocument ran, du willst einen Zeiger oder eine Referenz auf ein ganz bestimmtes CDocument. Du willst nicht an eine Klasse rankommen, du willst an eine bestimmte Instanz. Und dieser Unterschied ist dir IMHO noch nicht klar. Das erkennt man schon an der Problembeschreibung: Daten die in der Klasse ApplicationDoc gespeichert sind.Die Daten sind nicht in der Klasse gespeichert, sondern in einer Instanz dieser Klasse. Deine Fragestellung ist in etwa so, als wenn du fragen würdest "Wie macht man Autotüren auf", wenn es dir eigentlich darum geht, wie du eine ganz bestimmte Autotür öffnet, und zwar die deines eigenen Autos, die zugefroren ist, und den Schlüssel hast du verloren. Die Frage hat nichts mit deinem Problem zu tun, und die richtige Antwort ("Aufschließen und am Griff ziehen") hilft dir nicht im geringsten weiter. Die Antwort auf dein Problem (nicht auf deine Frage) ist: Übergib dem Dialog einen Zeiger oder eine Referenz auf die Dokumentinstanz, auf die du später zugreifen willst.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.