Можно ли сделать SetTimer()
только отправить сообщение WM_TIMER
, а не отправлять новое сообщение каждый раз, когда истекает указанное время? В настоящее время я использую KillTimer()
, когда я получаю сообщение WM_TIMER
, чтобы остановить таймер. Должен ли я продолжать это делать или есть другой способ указать это автоматически?Как заставить SetTimer() отправлять только одно сообщение WM_TIMER?
1
A
ответ
2
SetTimer()
создает только периодический таймер. Единственный способ сделать это одноразовым таймером - убить таймер в первом сообщении WM_TIMER
, как вы уже это делали.
В противном случае измените логику таймера, чтобы вместо этого вы могли использовать CreateWaitableTimer()
или timeSetEvent()
, оба из которых могут создать настоящий таймер с одним выстрелом.
3
Нет, SetTimer
всегда повторяется. Просто убейте его в своем обработчике WM_TIMER
, чтобы остановить его отправку другого.
Смежные вопросы
- 1. Does System.Windows.Forms.Timer отправляет сообщение WM_TIMER?
- 2. Сообщение WM_TIMER, но не задано таймер
- 3. WM_TIMER с более высоким приоритетом?
- 4. Сервер SuperWebSocket может получать только одно сообщение
- 5. Php WordPress только одно сообщение
- 6. Как эхо только одно сообщение из jsonfile
- 7. Не удается удалить WM_TIMER сообщения
- 8. Почему setTimer не работает?
- 9. Godaddy хрон отправляет только одно сообщение
- 10. TCP-сервер получает только одно сообщение
- 11. Как заставить пользователя читать только его сообщение?
- 12. Показать только одно сообщение в блоге
- 13. Показывать одно сообщение только для цикла foreach
- 14. Facebook Sdk делит только одно сообщение
- 15. Только разрешение на одно сообщение в день
- 16. Java-сокет отправляет только одно сообщение
- 17. Почему мой код показывает только одно сообщение?
- 18. Android-обработчик отправляет только одно сообщение
- 19. Как использовать одно сообщение?
- 20. Wordpress loop только показывает одно сообщение
- 21. Почему я получаю только одно сообщение?
- 22. несколько загрузок файлов загружает только одно сообщение
- 23. может получать только одно сообщение по каналу
- 24. Только одно сообщение проходит через трубу
- 25. boost :: socket получает только одно сообщение
- 26. Strophe js получает только одно сообщение
- 27. Reddit API возвращает только одно сообщение
- 28. Таймер WinAPI не отправляет событие WM_TIMER
- 29. Как заставить Wordpress показывать только одно сообщение на главной странице с комментариями и формой комментариев?
- 30. MessageBox & WM_TIMER (после Win2k)
Легко - не вызывайте Applcation.DoEvents. –
@MartinJames ... вы уверены, что это было предназначено для этого вопроса? Это вопрос C о необработанных функциях Windows API, а не о вопросе .net, и даже тогда прекращение всех событий приложений не является ответом; вполне вероятно, что этот человек делает реальную программу GUI и просто хочет убить свой временный таймер, а не останавливать все GUI все – andlabs