Forum: PC-Programmierung Timer in Win32-Fenster-Anwendung?


von Robert (Gast)


Lesenswert?

Hi,

ich habe in C++ eine Win32-Anwendung mit Fenster programmiert und 
verstehe soweit auch den Ablauf(z.B. Klick auf Button->Message wird 
getriggert->Switch->Case->Meine Button-Aktion). Jetzt möchte ich jedoch 
alle x Millisekunden automatisch einen bestimmten Code ausführen und 
komme nicht so recht weiter...ich muss glaube ich irgendwie 
Timergesteuert dafür sorgen, dass meine Message-Auswertung durchlaufen 
wird.

Aber wie genau stellt man das mit WinAPI in C++ an?

Vielen Dank,
Robert

von Karl H. (kbuchegg)


Lesenswert?

Robert schrieb:

> komme nicht so recht weiter...ich muss glaube ich irgendwie
> Timergesteuert dafür sorgen, dass meine Message-Auswertung durchlaufen
> wird.
>
> Aber wie genau stellt man das mit WinAPI in C++ an?

Du erzeugst einen Timer und teilst ihm mit, das er alle x Millisekunden 
eine WM_TIMER Message schicken soll. Der Rest geht dann wie gewohnt

Google: winapi timer

von bluppdidupp (Gast)


Lesenswert?


von Robert (Gast)


Lesenswert?

Hi,

vielen Dank, ich habe jetzt in WM_CREATE per SetTimer einen Timer 
generiert und er läuft schon - jede Sekunde wird meine Routine 
durchlaufen. Was mir nur nicht so ganz klar ist:
Lege ich IDT_TIMER1 oder wie auch immer ich diesen Parameter nenne per 
#define nach gutdünken fest, so wie ich das von anderen symbolischen 
Konstanten z.B. in der resource.h kenne?
Momentan habe ich es am Anfang der Main definiert und einfach mal 1001 
als Wert eingesetzt -  scheint zu klappen. Keine Ahnung ob das jetzt 
richtig oder erlaubt ist, einfach irgendeinen Wert als Kennung für einen 
Timer zu verwenden...

Gruß,
Robert

von Robert (Gast)


Lesenswert?

Nachtrag:
Mir ist schon klar, dass ich in der Auswertung von case WM_TIMER anhand 
dieser symbolischen Konstante die ID des Timers checken kann, weil es 
mehr als einen Timer geben kann...aber ist das der Grund bzw. kann ich 
da jede beliebige Zahl nehmen?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

http://msdn.microsoft.com/en-us/library/ms644906%28v=VS.85%29.aspx

Du hast das also schon ganz gut interpretiert.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.