C++中的SetTimer函數在Windows API中定義,用于創建一個定時器。它使用以下語法:
UINT_PTR SetTimer(
HWND hWnd, // 窗口句柄
UINT_PTR nIDEvent, // 定時器ID
UINT uElapse, // 定時器間隔,以毫秒為單位
TIMERPROC lpTimerFunc // 定時器回調函數,可選參數
);
參數說明:
hWnd: 窗口句柄,指定接收定時器消息的窗口。
nIDEvent: 定時器ID,用于標識一個定時器。可以通過此ID來取消定時器。
uElapse: 定時器間隔,以毫秒為單位。指定定時器在多久后觸發一次。
lpTimerFunc: 定時器回調函數,可選參數。當定時器觸發時,系統會調用此函數。
以下是一個使用SetTimer函數的示例:
#include
#include <windows.h>
// 定時器回調函數
VOID CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
{
std::cout << “Timer Event” << std::endl;
}
int main()
{
// 創建定時器,每1000毫秒(1秒)觸發一次定時器事件
UINT_PTR timerId = SetTimer(NULL, 0, 1000, TimerProc);
// 等待定時器事件
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
// 取消定時器
KillTimer(NULL, timerId);
return 0;
}
在上面的示例中,我們創建了一個每1秒觸發一次的定時器,并定義了一個名為TimerProc的定時器回調函數。在主函數中,我們使用GetMessage循環等待定時器事件的發生。最后,我們使用KillTimer函數取消定時器。
注意:SetTimer函數是在Windows平臺上使用的API,所以上述示例只能在Windows操作系統上運行。