);
Параметры
lpFrequency - указывает на переменную, значение которой, в отсчетах в секунду, функция устанавливает в текущую частоту счетчика производительности. Если установленное аппаратное обеспечение не поддерживает счетчик производительности, значение этого параметра может быть равно нулю.
Возвращаемые значения
В случае, если установленное аппаратное обеспечение поддерживает счетчик производительности, возвращается ненулевое значение.
В случае, если установленное аппаратное обеспечение не поддерживает счетчик производительности, возвращается нуль.
См. также
QueryPerformanceCounter.
Функция SetTimerсоздает таймер с указанным интервалом срабатывания.
UINT SetTimer(
HWND hWnd , // дескриптор окна для сообщений таймера
UINT nIDEvent , // идентификатор таймера
UINT uElapse , // интервал срабатывания таймера
TIMERPROC lpTimerFunc // адрес процедуры таймера
);
Параметры
hWnd - идентифицирует окно, связанное с таймером. Окном должен владеть вызывающий поток. Если значение этого параметра равно NULL, с таймером не связывается никакого окна и параметр nIDEvent игнорируется.
nIDEvent - определяет ненулевой идентификатор таймера. Если значение параметра hWnd равно NULL, этот параметр игнорируется.
uElapse - определяет интервал срабатывания в миллисекундах.
lpTimerFunc - указывает на функцию, уведомляемую об истечении заданного интервала. Для дополнительной информации смотрите описание функции TimerProc.
Если значение lpTimerFunc равно NULL, система отправляет сообщение WM_TIMER в очередь собщений приложения. Значение члена hwnd структуры сообщения типа MSGсодержит значение параметра hWnd .
Возвращаемые значения
В случае успеха возвращается целочисленный идентификатор нового таймера. Приложение может передавать этот идентификатор в функцию KillTimerдля разрушения таймера.
Если не удалось создать новый таймер, возвращается нуль.
Комментарии
Приложение может обрабатывать сообщение WM_TIMER в оконной процедуре приложения, с соответствующим включением в ее исходный код оператора case, либо указывая при создании таймера функцию обратного вызова TimerProc. Когда вы указываете функцию обратного вызова, функция DispatchMessageпросто вызывает ее вместо оконной процедуры.
Значение параметра wParam сообщения WM_TIMER содержит значение параметра nIDEvent .
См. также
DispatchMessage, KillTimer, MSG, TimerProc, WM_TIMER.
Функция TimerProcявляется определяемой приложением функцией обратного вызова, которая обрабатывает сообщения WM_TIMER.
VOID CALLBACK TimerProc(
HWND hwnd , // дескриптор окна для сообщений таймера
UINT uMsg , // сообщение WM_TIMER
UINT idEvent , // идентификатор таймера
DWORD dwTime // текущее системное время
);
Параметры
hwnd - идентифицирует окно, связанное с таймером.
uMsg - определяет сообщение WM_TIMER.
idEvent - определяет идентификатор таймера.
dwTime - задает число миллисекунд, истекших с момента старта Windows. Это значение возвращается функцией GetTickCount.
Возвращаемые значения
Функция не возвращает значения.
Комментарии
TimerProcявляется "заполнителем" для имени определяемой приложением функции.
См. также
GetTickCount, KillTimer, SetTimer, WM_TIMER.
Сообщение WM_TIMER отправляется в очередь сообщений установившего таймер потока или соответствующей функции обратного вызова TimerProcпо истечении интервала, заданного при установке таймера функцией SetTimer.
WM_TIMER
wTimerID = wParam ; // идентификатор таймера
tmprc = ( TIMERPROC*) lParam ; // адрес функции обратного вызова таймера
Параметры
wTimerID - значение wParam . Определяет идентификатор таймера.
tmprc - значение lParam . Указывает на определяемую приложением функцию обратного вызова, адрес которой был передан при установке таймера функцией SetTimer. Если значение параметра tmprc не равно NULL, Windows передает сообщение WM_TIMER указанной функции обратного вызова вместо помещения сообщения в очередь сообщений потока.
Возвращаемые значения
Приложение должно возвращать нуль, если оно обрабатывает это сообщение.
Читать дальше