Функция SetTimer


Функция SetTimer создает таймер с указанным значением времени простоя.

Синтаксис

UINT_PTR SetTimer(

    HWND hWnd,
    UINT_PTR nIDEvent,
    UINT uElapse,
    TIMERPROC lpTimerFunc
);

Параметры

hWnd

[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 Нет
Замечания по платформе Не имеется

Назад в оглавление
На главную страницу
В оглавление справки

Hosted by uCoz