MFC View aus MainFrame?

Codex27

Grünschnabel
Hallo zusammen,

eine vielleicht einfacheFrage, komm aber nicht drauf.
Ich habe ein MDI-Gerüst und als Basisklasse für die Views CHTMLView.
Ein bestimmtes Ereignis löst dann aus, dass ich einen nicht-modalen Dialog erzeuge, beim Klick auf einen Button in diesem Dialogfeld soll dann über die MainFrame eine Funktion in der gerade aktuellen ChildView aufgerufen werden.

//Dialogklasse, Klick auf Button:
void CDIA::OnBnClickedButton()
{
((CMainFrame*)AfxGetApp())->vfn_TEST(); //Aufruf der Funktion in MainFrame
}

Was muss jetzt in der MainFrame stehen, damit ich mit dem (richtigen) Pointer auf die aktuelleView zugreifen kann
Mit this->GetActiveView() geht es nicht, da kommt immer nur 0x0 raus.
Mit dem Erzeugen des nicht-modalen Dialogs geht die gerade aktuelle View wahrscheinlich verloren...
Naja. Oder geht es direkt aus der Dialogklasse eine Funktion in der View aufzurufen?
 
Hat sich bereits erledigt.

Ich habe mir einen Pointer auf die aktuelle View in der Mainframe in ein CView Membervariable gespeichert (vor dem Aufruf des nicht-modalen Dialogs!).

pView = this->GetActiveFrame()->GetActiveView();

Wenn nun im nicht-modalen Dialog dieser bestimmte Button gedrückt wird, rufe ich von dort einfach

((CMainFrame*)AfxGetMainWnd())->vfn_ShowWebCam (4);

die Funktion in der Mainframe auf. Von dort gelange ich über den vorher gespeicherten Pointer der View mit

((CApplikationsView*)pView)->...Funktion_der_View_Klasse();

in die korrekte Funktion der View-Klasse.
 
Zurück