Zugriff von Child auf Hauptdialog
-
connan schrieb:
Aber dein parent ist doch gar kein OpenGLControl

Richtig, mein parent ist (wenn ich alles richtig gemacht habe) das DF. Ich habe im Dialogfenster noch weitere Elemente, unter anderem eines für die Anzeige der Eckpunktanzahl. Daher möchte ich aus OpenGLControl auf das DF zugreifen können

-
Wie wär es denn mit einem cast auf Deinen parent, also sowas wie
((CMyDialog *)hWnd)->updateVertices( object->getvertexnum() );
-
jencas schrieb:
Wie wär es denn mit einem cast auf Deinen parent, also sowas wie
((CMyDialog *)hWnd)->updateVertices( object->getvertexnum() );
Leider tritt noch immer der gleiche Fehler auf

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