Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Func.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.58 Mб
Скачать

TimerProc

VOID CALLBACK TimerProc( HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime );

Аргументы

  1. hwnd — дескриптор окна, связанного с таймером.

  2. uMsg — сообщение WM_TIMER.

  3. idEvent — идентификатор таймера

  4. dwTime — число миллисекунд, прошедших с момента старта системы. Это значение возвращается функцией GetTickCount.

Примечание

Функция TimerProc представляет собой функцию обработки сообщения WM_TIMER. Тип TIMERPROC определяет указатель на данную функцию обратного вызова. Имя функции TimerProc является условным и может быть заменено другим именем, не используемым другими функциями.

Описание данной функции содержится в файле заголовка winuser.h.

TimeSetEvent

MMRESULT timeSetEvent( UINT uDelay, UINT uResolution, LPTIMECALLBACK lpTimeProc, DWORD dwUser, UINT fuEvent );

Возвращаемое значение

В случае успешного завершения работы функции возвращается идентификатор события таймера. В противном случае возвращается значение ошибки. Данная функция возвращает нулевое значение в случае возникновения ошибки или в том случае, если идентификатор таймера не был создан. (Этот идентификатор передаётся функции обратного вызова.)

Аргументы

  1. uDelay — задержка события в миллисекундах. Если эта величина находится за пределами минимально допустимой и максимально допустимой задержки события, обеспечиваемой таймером, функция возвращает значение ошибки.

  2. uResolution — разрешение события таймера в миллисекундах. Это разрешение увеличивается при уменьшении значения данного аргумента. Нулевое значение данного аргумента означает, что создаётся периодическое событие с максимально возможной точностью. Однако для снижения загрузки системы следует указывать максимально возможное значение разрешения, приемлемое для приложения.

  3. lpTimeProc — указатель на функцию обратного вызова, вызываемую по истечении однократного события или периодически по истечении периодического события. Если в аргументе fuEvent установлены флаги TIME_CALLBACK_EVENT_SET или TIME_CALLBACK_EVENT_PULSE, то аргумент lpTimeProc рассматривается как дескриптор объекта события. Событие должно быть отмечено после завершения однократного события или пульсировать в случае периодического события.

  4. dwUser — пользовательская информация, передаваемая функции обратного вызова.

  5. fuEvent — тип события таймера. Может быть установлен один из следующих флагов:

  • TIME_ONESHOT — событие отмечается однократно по истечении uDelay миллисекунд.

  • TIME_PERIODIC — событие отмечается каждые uDelay миллисекунд.

  1. Кроме того, в аргументе fuEvent могут быть установлены следующие флаги:

  • TIME_CALLBACK_FUNCTION — по истечении заданного интервала времени Windows вызывает функцию, указатель на которую передаётся в аргументе lpTimeProc. Этот флаг устанавливается по умолчанию.

  • TIME_CALLBACK_EVENT_SET — по истечении заданного интервала времени Windows вызывает функцию SetEvent для отметки события, указанного в аргументе lpTimeProc. Содержимое аргумента dwUser при этом игнорируется.

  • TIME_CALLBACK_EVENT_PULSE — по истечении заданного интервала времени Windows вызывает функцию PulseEvent для отметки события, указанного в аргументе lpTimeProc. Содержимое аргумента dwUser при этом игнорируется.

Примечание

Функция timeSetEvent запускает указанный объект события таймера. Мультимедийный таймер запускается в собственном потоке. После активизации события вызывается указанная функция обратного вызова или отмечается указанный объект события.

Каждому вызову функции timeSetEvent, создающему пульсирующий таймер должен соответствовать вызов функции timeKillEvent.

Описание данной функции содержится в файле заголовка mmsystem.h. При работе с данной функцией следует включить в проект библиотеку winmm.lib.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]