Timer in Win32-Fenster-Anwendung?

Gast #1931152
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
#1931155
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
Gast #1931192
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
Gast #1931196
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren