Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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!

Geschrieben

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...:rolleyes:

Geschrieben

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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...