Функция SetTimer создает таймер с указанным значением времени простоя.
UINT_PTR SetTimer( HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc ); |
[in] Дескриптор окна, которое связано с таймером. Это окно должно быть собственностью вызывающего потока. Если этот параметр NULL, никакое окно не связано с таймером, а параметр nIDEIvent игнорируется.
nIDEvent[in] Указывает идентификатор таймера отличный от нуля. Если параметр hWnd - NULL, этот параметр игнорируется. Если параметр hWnd - не NULL, и у окна, указанного hWnd уже есть таймер со значением nIDEvent, то существующий таймер заменяется новым таймером. Когда SetTimer заменяет таймер, то таймер возвращается в исходное положение. Поэтому, сообщение должно отправляться после того, как текущее значение времени простоя истекает, а раньше установленное значение времени простоя игнорируется.
uElapse[in] Указывает значение времени простоя, в миллисекундах.
Windows NT/2000/XP: Если uElapse больше, чем USER_TIMER_MAXIMUM, блокировка по времени устанавливается в 1.
Windows 2000/XP: Если uElapse меньше, чем USER_TIMER_MINIMUM, блокировка по времени устанавливается в USER_TIMER_MINIMUM.
Windows Server 2003: Если uElapse больше, чем USER_TIMER_MAXIMUM, блокировка по времени устанавливается в USER_TIMER_MAXIMUM.
Windows XP SP2/Windows Server 2003 SP1: Если uElapse меньше, чем USER_TIMER_MINIMUM, блокировка по времени устанавливается в USER_TIMER_MINIMUM. Если uElapse больше, чем USER_TIMER_MAXIMUM, блокировка по времени устанавливается в USER_TIMER_MAXIMUM.
lpTimerFunc
[in] Указатель на функцию, которая уведомляет, когда значение времени простоя истекает. Для получения дополнительной информации о функции, см. описание TimerProc. Если параметр lpTimerFunc - NULL, система помещает уведомление WM_TIMER в очередь прикладной программы. Член hwnd структуры MSG содержит в себе значение параметра hWnd.
Если функция завершается успешно, а параметр hWnd - NULL, возвращаемое значение - целое число, идентифицирующее новый таймер. Приложение может передать это значение в функцию KillTimer, чтобы уничтожить таймер.
Если функция завершается успешно, а hWnd параметр - не NULL, тогда возвращаемое значение - целое число отличное от нуля. Приложение может передать значение параметра nIDEvent в функцию KillTimer, чтобы уничтожить таймер.
Если при создании таймера функция завершается ошибкой, возвращаемое значение - нуль. Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.
Приложение может обработать сообщения WM_TIMER включением оператора выбора WM_TIMER в оконной процедуре или указывая функцию обратного вызова TimerProc, когда создается таймер. Когда Вы указываете функцию обратного вызова TimerProc, оконная процедура по умолчанию вызывает функцию обратного вызова, когда он обрабатывает WM_TIMER. Поэтому, Вы должны распределить сообщения в вызывающем потоке, даже тогда, когда Вы используете TimerProc вместо того, чтобы обработать WM_TIMER обычным путем.
Параметр wParam сообщения WM_TIMER содержит значение параметра nIDEvent.
Идентификатор таймера nIDEvent, указывается связанным окном. Другое окно может иметь свой собственный таймер, у которого есть тот же самый идентификатор что и таймер, собственность другого окна. Таймеры индивидуальны.
SetTimer может многократно использовать идентификаторы (ID) таймера в случае, где hWnd - NULL.
Пример смотрите в статье Создание таймера.
Обзор Таймеры, Функции, используемые таймером,KillTimer, MSG, TimerProc, WM_TIMER
Размещение и совместимость SetTimer |
||
К | Windows XP | Да |
л | Windows 2000 Professional | Да |
и | Windows NT Workstation | Да версии 3.1 |
е | Windows Me | Да |
н | Windows 98 | Да |
т | Windows 95 | Да |
С | Windows Server 2003 | Да |
е | Windows 2000 Server | Да |
р | Windows NT Server | Да версии 3.1 |
в | ||
е | ||
р | ||
Используемая библиотека | User32.lib | |
Используемая DLL | user32.dll | |
Заголовочный файл | ||
- объявлено в | Winuser.h | |
- включено в | Windows.h | |
Unicode | Нет | |
Замечания по платформе | Не имеется |