OpenGlFenster neuzeichnen in SDI Framework
-
Hi,
ich habe folgendes Problem, ich will die Koordinatenachsen mittels eines Knopfes ein und ausblenden. Jedoch funktioniert irgendwie das Neuzeichnen nicht, wenn ich den entsprechenden Button gedrückt habe.
void CTalkingHeadEditorView::OnDraw(CDC* pDC) { // TODO: Code zum Zeichnen der systemeigenen Daten hinzufügen wglMakeCurrent(m_hDC, m_hRC); glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); glLoadIdentity(); glPushMatrix(); if (m_AxesState) {pDoc->drawAxes(80.0);} glPopMatrix(); if (doubleBuffered ) SwapBuffers(m_hDC); else glFlush(); wglMakeCurrent( NULL, NULL ); ValidateRect(NULL); // Do not call CView::OnPaint() for painting messages }
Und jetzt die Methode, die beim Drücken des Buttons ausgeführt wird
void CTalkingHeadEditorView::KoordinatenAchsen() { if(m_AxesState == true) m_AxesState = false; else m_AxesState = true; Invalidate(); }
Müsste nicht durch das Invalidate das Fenster neugezeichnet werden? UpdateWindow hilft auch nicht.
Das besondere ist, daß das Fenster neugezeichnet wird, wenn ich das Dialogfenster, wo der Button drin ist, bewege bzw. ein anderes Fenster das OpenGL Fenster verdeckt und somit die Achsen dann ein oder ausblendet.MfG
Matthias
-
diablo80 schrieb:
if(m_AxesState == true) m_AxesState = false; else m_AxesState = true;
ROFL
KA - schau doch mal in der MSDN...