Если значение lpTimerFunc равно NULL, система отправляет сообщение WM_TIMER в очередь собщений приложения. Значение члена hwnd структуры сообщения типа MSG содержит значение параметра hWnd .
Возвращаемые значения
В случае успеха возвращается целочисленный идентификатор нового таймера. Приложение может передавать этот идентификатор в функцию KillTimer для разрушения таймера.
Если не удалось создать новый таймер, возвращается нуль.
Комментарии
Приложение может обрабатывать сообщение WM_TIMER в оконной процедуре приложения, с соответствующим включением в ее исходный код оператора case, либо указывая при создании таймера функцию обратного вызова TimerProc . Когда вы указываете функцию обратного вызова, функция DispatchMessage просто вызывает ее вместо оконной процедуры.
Значение параметра wParam сообщения WM_TIMER содержит значение параметра nIDEvent .
См. также
DispatchMessage, KillTimer, MSG, TimerProc , WM_TIMER.
TimerProc
Функция 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
Сообщение WM_TIMER отправляется в очередь сообщений установившего таймер потока или соответствующей функции обратного вызова TimerProc по истечении интервала, заданного при установке таймера функцией SetTimer .
WM_TIMER
wTimerID = wParam ; // идентификатор таймера
tmprc = ( TIMERPROC *) lParam ; // адрес функции обратного вызова таймера
Параметры
wTimerID - значение wParam . Определяет идентификатор таймера.
tmprc - значение lParam . Указывает на определяемую приложением функцию обратного вызова, адрес которой был передан при установке таймера функцией SetTimer . Если значение параметра tmprc не равно NULL, Windows передает сообщение WM_TIMER указанной функции обратного вызова вместо помещения сообщения в очередь сообщений потока.
Возвращаемые значения
Приложение должно возвращать нуль, если оно обрабатывает это сообщение.
Комментарии
Функция DispatchMessage передает сообщение в очередь сообщений потока, когда в ней нет других сообщений.
См. также
DispatchMessage, SetTimer, TimerProc .
Ввод с клавиатуры
SetKeyboardState
Функция SetKeyboardState копирует массив из 256 байт состояний клавиш в таблицу состояния ввода с клавиатуры вызывающего потока. Это та же самая таблица, к которой имеют доступ функции GetKeyboardState и GetKeyState . Изменения, сделанные в этой таблице, не влияют на ввод с клавиатуры для других потоков.
BOOL SetKeyboardState (
LPBYTE lpKeyState // адрес массива с кодами виртуальных клавиш
);
Параметры
lpKeyState - указывает на 256-байтный массив, который содержит состояния клавиш клавиатуры.
Возвращаемые значения
В случае успеха возвращается ненулевое значение.
В случае неудачи возвращается нуль. Для получения дополнительной информации об ошибке вызовите функцию GetLastError .
Комментарии
Поскольку функция SetKeyboardState изменяет состояние ввода вызывающего потока, но не глобальное состояние ввода системы, приложение не может использовать SetKeyboardState для установки индикаторов NUM LOCK, CAPS LOCK или r SCROLL LOCK на клавиатуре.
См. также
GetAsyncKeyState, GetKeyboardState, GetKeyState, MapVirtualKey .
Области
CombineRgn
Функция CombineRgn объединяет две области и сохраняет результат в третьей. Две области объединяются согласно указанному режиму объединения.
int CombineRgn (
HRGN hrgnDest , // дескриптор результирующей области
HRGN hrgnSrc 1 , // дескриптор исходной области
HRGN hrgnSrc 2 , // дескриптор исходной области
int fnCombineMode // режим объединения областей
);
Параметры
hrgnDest - идентифицирует новую область с размерами, определяемыми двумя исходными областями (область должна существовать до вызова функции CombineRgn ).
hrgnSrc 1 - идентифицирует первую из двух исходных областей.
hrgnSrc 2 - идентифицирует вторую из двух исходных областей.
fnCombineMode - определяет режим объединения двух областей. Может принимать одно из следующих значений:
Значение |
Пояснение |
RGN_AND |
Создается пересечение двух областей. |
RGN_COPY |
Создается копия области, идентифицируемой значением параметра hrgnSrc 1 . |
RGN_DIFF |