Und zwar folgendes Problem: ich öffne aus der Doc-Klasse meiner SDI-Anwendung ein Dialogfeld (abgeleitet von CDialog).
Jetzt möchte ich aus dem Dialogfeld heraus auf eine Membervariable der Doc-Klasse zugreifen. Dazu bräuchte ich ja sicherlich einen Pointer auf diese Klasse.
Wie kann ich diesen erzeugen? Habs u.a. versucht mit GetParent(), ist aber Quatsch, weil das Dialogfeld in diesem Sinne keinen Parent besitzt
Vielen Dank schonmal!
Grüße
JoSsiF
Zuletzt bearbeitet von estartu am 09:19:55 10.02.2006, insgesamt 2-mal bearbeitet
Was Du da genau machst habe ich zwar nicht verstanden, aber mir haben die Views immer einen Member m_pDocument der auf das Document zeigt.
Wenn Das Document in der App-Klasse definiert hast kommt man vielleicht mit AfxGetApp()->m_myDoc
dahin.
Hilft das ?
Aus der View heraus auf Doc zuzugreifen ist kein Problem - dafür bietet CView ja die Funktion GetDocument().
Über AfxGetApp() hat's leider nicht funktioniert. Ich definiere das Document auch nicht in der App. Das übernimmt ja alles der Wizard *g*
Sorry, beschäftige mich noch nicht allzu lang mit der Thematik. Wenn das bei dir gut funzt mit der AfxGetApp()-Sache, wie krieg ich dann die Definition des Documents in der App hin, ohne dass hier gleich nichts mehr funktioniert?
Oder gibt's noch eine andere Möglichkeit des Zugriffs?
@estartu_de:
Das klingt gut! Ich hab mich mal für die 1. Variante entschieden.
Habe im Header der Dialog-Klasse die Membervariable angelegt, und diese wird im Doc initialisiert.
Da muss ich allerdings jetzt nochmal ganz dumm ranfragen: die Membervariable muss ja vom Typ meiner Doc sein (abgeleitet von CDocument). Wo muss ich nun welche Header-Datei einbinden, damit der mit dieser Klasse auch was anfangen kann? Bisher hagelt's massig Fehlermeldungen, die darauf zurückzuführen sind, dass der die Klasse nicht kennt. Habe probehalber die Header-Datei der Doc in die Header-Datei des Dialogs geschrieben - bringt aber leider nichts.
Nächstes Thema anzeigen Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben. Sie können auf Beiträge in diesem Forum nicht antworten. Sie können Ihre Beiträge in diesem Forum nicht bearbeiten. Sie können Ihre Beiträge in diesem Forum nicht löschen. Sie können an Umfragen in diesem Forum nicht mitmachen.
c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums
für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de
Werbekostenerstattung verdient werden kann.
Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de
enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt
(vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in
privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden.
Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere
übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.