Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

Kommunikation zwischen CMainFrame und CDocument in vc++ 6.0

lumpi_99 / 1 Antworten / Flachansicht Nickles

hi,

mein problem is wahrscheinlich gar keins, aber ich steh i.m. absolut neben mir. also:
ich hab eine sdi- anwendung, die über eine dialogbar verfügt. in dieser bar will ich die einstellungen zu berechnungen festlegen, die dann von dem document benutzt werden. jetzt mein problem:
wie kann ich in meinem document auf die dialogBar zugreifen? diese wurde definiert und kreiert in CMainFrame::OnCreate(). es muss doch ne möglichkeit geben, vom document auf den mainFrame zuzugreifen, oder?

schon mal vielen dank im vorraus...

bei Antwort benachrichtigen
Enrico_Horn lumpi_99 „Kommunikation zwischen CMainFrame und CDocument in vc++ 6.0“
Optionen

Versuchs mal so:

CMainFrame *pMainFrame;
pMainFrame = (CMainFrame *)AfxGetMainWnd();

oder so:

CMainFrame *pMainFrame;
pMainFrame = (CMainFrame *)AfxGetApp()->m_pMainWnd;

dann:
pMainFrame->m_dialogBar->blablabla....
oder wie deine Dialogbar-Variable halt heisst.

Die DialogBar muss dann natürlich eine Public-Variable von CMainFrame sein oder über eine Methode zurückgegeben werden.

Ich würde das alerdings so machen:
Du definierst ein deinem Applikation-Objekt eine Struktur, in der die Einstellungen gespeichert werden. Die Dialogbar füllt diese Struktur, das Dokument holt die Einstellungen da raus. Damit trennst du besser Oberfläche und Funktionalität. Außerdem muss dann das Dokument nichts über die Dialogbar wissen, und man kann später die Optionen auch woanders einstellen. Auf die App kannst du mit AfxGetApp() zugreifen (muss du natürlich dann auf deine spezielle Application-Subklasse casten)

MfG,
Enrico.

bei Antwort benachrichtigen