Forms in .NET "refreshen"
Geizhals » Forum » Programmierung » Forms in .NET "refreshen" (13 Beiträge, 251 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
Forms in .NET "refreshen"
17.07.2013, 23:01:23
Hi.

Vielleicht kennt sich ja wer in .NET und Forms aus und kann mir bei einem kleinen Problem weiterhelfen.

Ich hab eine Windows-Form die über die NativeWindow Klasse ein OpenGL Fenster enthält.
(http://www.codeproject.com/Articles/16051/Creating-an-OpenGL-view-on-a-Windows-Form  etwas abgewandelt).

Mein Problem ist jetzt: Wie bring ich der Form bei sich 60x in der Sekunde zu refreshen, oder noch einfach, andauernd.. bis jetzt refreshed sie nur wenn das Fenster resized wird.

Der Timer den ich angelegt hab funktioniert, jedoch refreshed wird nix.


private: System::Void Form1_Shown(System::Object^  sender, System::EventArgs^  e) {
			 m_refreshTimer->Interval = (int)1000/60;
			 m_refreshTimer->Elapsed += gcnew System::Timers::ElapsedEventHandler ( this, &Form1::refreshClient );
			 m_refreshTimer->Enabled = TRUE;
			 m_refreshTimer->Start();
		 }
		 void refreshClient ( Object^ source, ElapsedEventArgs^ e ) {
			PaintEventArgs ^ptArgs = gcnew PaintEventArgs(this->CreateGraphics(), this->DisplayRectangle);
			m_gl->Render();
			m_gl->SwapOpenGLBuffers();
			// this->Update();
			if (this->InvokeRequired)
				this->InvokePaint(this, ptArgs);
			else
				this->Refresh();
		 }



		virtual System::Void Render(System::Void)
		{
			// Clear the color and depth buffers.
			glClearColor(0.0f, 0.0f, 0.0f, 0.0f) ;
			glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
			glColor4f (1., 1., 1., 1.);
			glLoadIdentity();
			glScalef (1., 1., -1.);
			glTranslatef (0., 0., 5.);
			glRotatef(m_tRot, 0., 0., 1.);
			glDisable (GL_TEXTURE_2D);
			glBegin (GL_TRIANGLE_STRIP);
			glVertex3f (-1., -1., 0.);
			glVertex3f (1., -1., 0.);
			glVertex3f (-1., 1., 0.);
			glVertex3f (1., 1., 0.);
			glEnd();
			m_tRot += 0.5;
		}		

		System::Void SwapOpenGLBuffers(System::Void)
		{
			SwapBuffers(m_hDC);
		}


Danke und lg.


"Those who don't understand Unix are condemned to reinvent it, poorly." – Henry Spencer
17.07.2013, 23:01 Uhr - Editiert von A national Acrobat, alte Version: hier
Antworten PM Übersicht Chronologisch
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung