Zugriff von Child auf Hauptdialog
-
Aber doch bestimmt nicht mit dieser Fehlermeldung "... : error C2039: 'updateVertices' : Ist kein Element von 'CWnd'", oder????
-
Doch, genau die gleiche...
-
Von welchem Type ist hWnd?
-
Du kannst nur von deinem Dialog aus m_oglWindow.updateVertices(...) aufrufen, dein Dialog, da kannst du casten wie du willst, hat die Methode einfach nicht.
-
(D)Evil schrieb:
Von welchem Type ist hWnd?
CWnd*

-
Hm, vielleicht nochmal etwas besser beschreiben:
Ich habe eine Dialogklasse namens CProjectDlg. Die hat als eine Variable ein OpenGLControl (das m_oglWindow).
Ich rufe in CProjectDlg::OnInitDialog die Funktion m_oglWindow.oglCreat( rect, this) - dort übergebe ich wie beschrieben den Zeiger auf CProjectDlg
Dann rufe ich im m_oglWindow die Funktion OpenGLControl::loadFile() - in dieser Funktion möchte ich auf eine Funktion aus CProjectDlg zugreifen, nämlich die CProjectDlg::updateVertices(int i)
Vielleicht ist die Problematik so etwas deutlicher

Vielen Dank schon mal für die Unterstützung
-
Dann sollte dass funktionieren:
( (CProjectDlg*)(hWnd) )->updateVertices( object->getvertexnum() );
-
Ja, klasse. Das funktioniert

Vielen vielen Dank an alle, die sich Mühe gemacht haben.
MfG
Neron
-
Tja, sowas hatte ich aber auch schon geschrieben.....
-
Ich hab auch von dir 'zitiert'...

-
Sorry jencas - Ich sehe grad, dass ich bei deinem Code die äußeren Klammern um (CDialog*)hWnd vergessen habe, dadurch wohl der Fehler - heißt das, der Zugriff auf die Operation geht in der Reihenfolge vor den Cast?
-
(CProjectDlg*)(hWnd)->updateVertices( object->getvertexnum() );ist dasselbe wie
(CProjectDlg*)(hWnd->updateVertices( object->getvertexnum() ));deswegen ist es auch bei derselben Fehlermeldung geblieben!!!