von CView auf Methoden eines Formulars zugreifen
-
mit
CView* m_view; m_view = (CView*)new CMyFormular(); //.. dann Formular erzeugen etc.
ist es möglich ein Formular einem CView-Objekt zuzuweisen.
wie kann ich nun vom m_view auf methoden des CMyFormulars zugreifen?
-
Casten.
Oder du castest den gar nicht erst in einen CView, dann kannst du dir das sparen.
-
CView benötige ich um mehrere Fenster zu verwalten in einer SDI Oberfläche. funktioniert ja auch ganz gut.
was meinst du mit "Casten"?
versteh ich nicht, hilf mir mal ein bischen auf die sprünge.
-
Um an die CMyFormular-Methoden ranzukommen, mußt du dem Compiler erklären, daß du dein View als CMyFormular verwenden willst - das bezeichnet sich als "casten":
CMyFormular *pForm = dynamic_cast<CMyFormular*>(m_view); if(pForm==NULL) { //Fehler - m_view ist *kein* CMyFormular-Objekt: cerr<<"Falscher View-Typ zugeordnet\n"; return E_FAILURE; } pForm->doSomething();
-
(CView*)
Das ist Casten.
-
also typkonvertieren. gibt es unter CView nicht irgendeine Methode die direkt auf das Formular zugreift?
Kann man nicht auch mit:
GetWindow
GetDlgItemInt
m_hWnd
m_hwndOwnerauf das Formular direkt zugreifen?
-
CView ist kein Formular. Ein Formular wäre CFormView, der stellt dir dann auch passende Funktionen zur Verfügung.