Zugriff auf Objekt
-
Hi @ all
In meiner SDI habe ich in der Klasse C..View ein Objekt auf eine Klasse erstellt. Jetzt will ich aus einem anderem Dialog "CMyDialog" auf dieses Objekt zugraeifen
a: Wie mache ich dies am besten,
b: Warum kann ich die Header-Datei von C..View in meine Dialogklasse nicht includieren ????
Gruß
-
Kann mir denn niemand helfen ???
-
// MyDialog.h class C..View; // Vorwärtsdeklaration class CMyDialog : public CDialog { // Konstruktor CMyDialog( C..View* pView, ...) : CDialog(...) { ASSERT( pView); m_pView = pView; } protected: C..View* m_pView; }; // CMyDialog.cpp #include "C..View.h" // C..View.cpp void C..View::OnMyDialog() { CMyDialog dlg( this, ...); }
Ausführlich genug?
-
Das inkludieren sollte eigentlich funktionieren, hast es vielleicht nur an falscher Stelle gemacht. Wenn dies geklappt hat könntest du auch so auf deine ViewKlasse zugreifen :
CFrameWnd* pFrame = (CFrameWnd )(AfxGetApp()->m_pMainWnd);
CMy123View pView = (CMy123View*)(pFrame->GetActiveView());und dann einfach mit pView-> auf die benötigten Daten zugreifen.
-
Leider kann ich die C..View nicht includieren, somit auch nicht auf das dort stehende Objekt.
Gibst es denn noch andere Möglichkeiten soetwas zu realisieren ???
Gruß
-
So gehts auch, ist aber ein wenig umstndlicher :
http://cui.unige.ch/OSG/people/Past/fuentes/Mfc/HowTo_8.html
-
@ hoschi
Es nicht das erste mal dass ich C..View nicht includieren kann.
Nach dem include sind plötzlich die ID's dieser zwei Dialoge nicht mehr bekannt !!!!
-
Wozu schreibe ich eigentlich, wie's geht, wenn es sich niemand anschaut???
-
ReneG hat natürlich recht, seine Lösung ist die eleganteste
-
@ Rene
Hi,
nach dem Muster habe ich es auch schon mehrmals versucht, aber wie gesagt, es hängt immer bei dem include von CView ????
-
Also Du hast wirklich in MyDialog.cpp inkludiert und nicht in MyDialog.h ??
Und das Inklude hast Du NACH #include "stdafx.h" gemacht???Dann hast Du irgendein Problem im Header, bei mir hat das immer gefunzt !