Loki876 Geschrieben 9. März 2006 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!
Hexagon Geschrieben 10. März 2006 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...
Klotzkopp Geschrieben 10. März 2006 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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden