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... 😕


Anmelden zum Antworten