Loki876 Geschrieben 9. März 2006 Teilen Geschrieben 9. März 2006 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! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hexagon Geschrieben 10. März 2006 Teilen Geschrieben 10. März 2006 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... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 10. März 2006 Teilen Geschrieben 10. März 2006 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.