Auf das Document in einer Dialogklasse zugreifen
-
Hallo! Ich verstehe nicht viel von C++ darum mag euch meine Frage komische vorkommen.
Ich habe ein Dialog erstellt, und in diesem Dialog habe ich ein Button eingefügt. Nun will ich in der Klasse dieses Dialogs auf das Document zugreifen... Ich kenne das mit diesem "Befehl" (einfach einfügen und es tut)
CNogame2Doc* pDoc = GetDocument();
aber leider ist das nicht so in meiner Dialog Klasse. Wie kann ich auf das Document in der DialogKlasse zugreifen?
Hatte diese Frage schonmal, nur leider habe ich es damlas nicht verstanden :(. Wenn mir jemand, schirtt für schritt weiterhelfen könnte, oder nur ein "Trick" sagen könnte wie das geht, wäre ich sehr dankbar.MfG Szill
-
Für alle Helfer: Hier ist das "damals".
-
Ja, danke.
Also wenn ich C++ ein bisschen verstanden habe muss ich:
CNogame2Doc* CNogame2View::GetDocument() { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CNogame2Doc))); return (CNogame2Doc*)m_pDocument; }
in die Dialog Klasse kopieren... bloss mit CMetMiDlg statt CNogame2View.
Leider tut das nicht (war klar).Was mach ich Falsch? Was habe ich nicht verstanden?
-
Hmm, damals waren wir zwei nen Schritt weiter.
Lies nochmal den Beitrag von mir von 15:09:35 02.02.2006.
-
Welche "Art" müsste diese Membervariable denn sein? m_pDoc?
CMetDlg MetDlgMom; MetDlgMom.m_pDoc = GetDocument(); MetDlgMom.DoModal();
Also wie muss ich die initialisieren/erzeugen?
Wenn ich diesen sch**** hinter mir habe gebe ich eine Kiste Bier aus ^^
-
Gegenfrage: Was gibt dir GetDocument?
Denn genau das, was du da bekommt willst du in m_pDoc speichern.Anm: Ich mach das mit dir mal Schritt für Schritt, damit du hinterher weißt, wie du drauf kommen kannst. Fürs nächste Mal eben.
-
GetDocument gibt mir einen Pointer bzw. das was in eine Pointer "reinkommt"?
Das Schritt für Schritt ist gut!
-
Pointer ist richtig, aber auf was?
Schreib den Typ mal hier hin.
-
Ein Pointer auf das Document?
Typ, da muss ich passen. Vielleicht auf eine Klasse?
-
Ja, auf welche Klasse?
Den Namen brauchen wir....kleiner Tip, sie endet vermutlich mit Doc.
-
CNogame2Doc?
CNogame2Doc *m_pDoc ?
-
Szill schrieb:
CNogame2Doc *m_pDoc
-
Ja, danke erstmal!!
Aber es klappt nicht
So ist alles richtig? :
CNogame2Doc *m_pDoc; <- in der MetMiDlg.h unter puplic
void CNogame2View::OnAusMetMi() { CMetMiDlg mDlg; mDlg.m_pDoc = GetDocument(); mDlg.DoModal(); }
void CMetMiDlg::OnMetMi() { m_pDoc->Met = 10; AfxMessageBox(m_pDoc); }
metmidlg.h(19) : error C2501: 'CNogame2Doc' : Fehlende Speicherklasse oder Typbezeichner
und noch 4 ähnliche Fehler.
-
Compilermeldungen die diesem Schema entsprechen
'Klassenname' : Fehlende Speicherklasse oder Typbezeichner
zeigen dir, dass du vergessen hast, die Klasse zu includen.
Gut merken, den Fehler wirst du noch oft bekommen.
-
vielen, viele, vielen Dank!
MfG Szill
Bis (sehr wahrscheinlich) bald
-
Kein Problem.