Timerfunktionen

thodtie

Mitglied
Hallo,

ich brauche für mein MFC-Windows Programm einen Timer, dass heißt ich möchte das ein Timerläufter in Sekunden oder die Systemzeit in Sekunden, das ist eigentlich egal.

Gibt es schon eine Bibliothek die Zeitfunktionen unterstützt und wenn ja was sind das dann für Befehle um einen kleinen Timer zu realisieren?

Grüße Christoph
 
Hallo !

mit
Code:
SetTimer(IDC_TIMER,1000,NULL);
IDC_TIMER = Eindeutiger Bezeichner des Timers ( geht auch 1 oder 2 usw)
1000 = Zeitfaktor in MS

Dann kannst du über den Klassenassi die Windowsmessage WM_TIMER aktivieren und erhälst die Methode
Code:
void DeineKlasse::OnTimer(UINT nIDEvent) 
{
	if (nIDEvent ==1)
	{
		KillTimer(1); // Den Timer killen! 
            // Wenn du den Timer nicht mehr benötigst solltest du ihn auch killen
            // Und hier darfst du dich dann austoben ;-)

	}
	CDialog::OnTimer(nIDEvent);
}

Hoffe ich konnte es dir ein wenig näher bringen

Sven
 
Hi,
Ich hab zwar keine Antwort aber eine Frage zuTimer.
Wie behandle ich 2 oder mehrere Timer?

So?:
Code:
SetTimer(1,10,NULL);
SetTimer(2,3300,NULL);

void DeineKlasse::OnTimer(UINT nIDEvent) 
{
	if (nIDEvent ==1)
	{
                ...
	}
                if (nIDEvent ==2)
	{
                ...
	}
	CDialog::OnTimer(nIDEvent);
}

Wenn ja, was passiert wenn Timer 1 und 2 zur gleichen Zeit das WM_TIMER-Ereignis sendet?

Ich hoffe Ihr könnt mir helfen !

Mfg Col.Blake
 
Gleichzeitig gibt's nicht. Die WM_TIMER kommt ganz normal über die WindowProc, und die bringt immer nur eine Nachricht nach der anderen. Das ist dann auch der Grund, warum WM_TIMER für genaue Messungen nicht ausreichend ist, für einfache alle-paar-Sekunden-etwas-machen aber völlig ausreichend ist.
 
Schade? Moment, falsch verstanden.

Dein Beispiel macht das genau richtig. Man kann (beliebig?) viele Timer an ein HWND hängen und anhand der ID unterscheiden. Du kannst nur wegen der WindowProc ein WM_TIMER auf einmal bekommen. Das andere kommt dann hinterher. Das meinte ich mit nicht gleichzeitig!
 
Ich glaub ich hab dich schon richtig verstanden.

Ich arbeite gerade (nur so just for fun) an einem Programm welches eben Zeitkritisch ist.
Da ist es wichtig, dass die 1/100 sekunde eben genau 1/100 sekunde lang ist.


Trotz dem, ist es aber Interesant zu lesen, was andere Leute für Erfahrungen gemacht haben.
Vieleicht kann ja mal jemand Posten, wie man am bessten solche Probleme löst.

Thx
Col.Blake
 
Wenn du wirklich extremst genau Timer brauchst (zum Bleistift zum Soundschnipsel-am-Stück-abspielen), dann gugg mal in Richtung "Multimedia Timer Functions".

Mit denen habe ich damals, als ich noch jung und knusprig war, einen lustigen Screensaver gebastelt, bei dem Soundschnipsel direkt hintereinander abgespielt werden mussten, ohne dass man Aussetzer dazwischen hört.
 
Zurück