Zum Inhalt springen

Kommunikation View->Doc geht, wie andersherum?


PanicMan

Empfohlene Beiträge

Hallo!

ich hab jetzt endlich herausgefunden, wie eine kommunikation zwischen der View und der Doc Klasse geht. und Zwar ist da in der ...View.h folgender eintrag :

#ifndef _DEBUG // debug version in AdressenVerwaltungView.cpp

inline CAdressenVerwaltungDoc* CAdressenVerwaltungView::GetDocument()

{ return (CAdressenVerwaltungDoc*)m_pDocument; }

#endif

und in der ...View.cpp dieser :

//////////////////////////////////////////////////////////

// CAdressenVerwaltungView diagnostics

#ifdef _DEBUG

void CAdressenVerwaltungView::AssertValid() const

{

CFormView::AssertValid();

}

void CAdressenVerwaltungView: :Dump(CDumpContext& dc) const

{

CFormView: :Dump(dc);

}

CAdressenVerwaltungDoc* CAdressenVerwaltungView::GetDocument() // non-debug version is inline

{

ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CAdressenVerwaltungDoc)));

return (CAdressenVerwaltungDoc*)m_pDocument;

}

#endif //_DEBUG

Der Zugriff von der View auf die Doc geht dan so : GetDocument()->...

OK, jetzt wollte ich das ganze andersherum machen, also von der Doc auf die View zugreifen, dann geht es nicht, obwohl ich die ganzen sachen

dementprechend anpasse...

habe ich was vergessen?

------ Nachtrag -------------

In der Haupt-CPP habe ich diesen eintrag gefunden :

CSingleDocTemplate* pDocTemplate;

pDocTemplate = new CSingleDocTemplate(

IDR_MAINFRAME,

RUNTIME_CLASS(CAdressenVerwaltungDoc),

RUNTIME_CLASS(CMainFrame), // main SDI frame window

RUNTIME_CLASS(CAdressenVerwaltungView));

AddDocTemplate(pDocTemplate);

Möglicherweise hängt das damit zusammen, aber wie kann ich das umändern?

THX

Link zu diesem Kommentar
Auf anderen Seiten teilen

Von einem von CDocument abgeleiten Klassenobjekt greift man auf die Views am besten mit zwei Funktionen zu.

Und zwar CDocument::GetFirstViewPosition (MSDN) und CDocument::GetNextView (MSDN) .

Zwei Funktionen sind notwendig, weil ein Document im MDI (Multi Document Interface) ja mehrere Views haben kann.

Wie du schon vermutet hast, findet die Zuordnung zwischen Document-Klasse und View-Klasse in der Template-Definition statt.

Dies ist auf jeden Fall der Ort der Standardzuordnung. Mit einigem Aufwand kann man eine Zuordnung auch anders herstellen.

Hoffe, das war das was du wissen wolltest.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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