Lassen Sie uns sagen, dass wir in einer Funktion, die aufgerufen wird, wenn eine MaustasteC++ - verzögerte Ausführung von Code
static inline LRESULT CALLBACK WndProc(const int code, const WPARAM wParam, const LPARAM lParam){
}
gedrückt möchte ich nun einige Code auszuführen, nachdem keine Taste für 5 Sekunden gedrückt wurde. Wenn der Benutzer nach 2 Sekunden eine Maustaste drückt, sollte der "Timer" zurückgesetzt werden und weitere 5 Sekunden warten.
Kann das sogar in C++ gemacht werden? Wenn ich Sleep(5000)
verwende, kann ich nicht verhindern, dass der Code ausgeführt wird, wenn eine andere Taste dazwischen gedrückt wird.
1. Blockieren Sie die Ausführung nicht. 2. Starten/Zurücksetzen des Zählers nach dem Mausklick. 3. Wenn die Taste gedrückt wird, prüfen Sie, ob der Zähler unter fünf Sekunden ist und reagieren Sie entsprechend. 4. Nach 5 Sekunden Zähler stoppen und auf Null stellen. Wäre dieser Ansatz nicht angemessener? – Mars
Verwenden Sie SetTimer(). –