C++中的SetTimer函數(shù)在Windows API中定義,用于創(chuàng)建一個定時器。它使用以下語法:
UINT_PTR SetTimer(
HWND hWnd, // 窗口句柄
UINT_PTR nIDEvent, // 定時器ID
UINT uElapse, // 定時器間隔,以毫秒為單位
TIMERPROC lpTimerFunc // 定時器回調(diào)函數(shù),可選參數(shù)
);
參數(shù)說明:
hWnd: 窗口句柄,指定接收定時器消息的窗口。
nIDEvent: 定時器ID,用于標(biāo)識一個定時器??梢酝ㄟ^此ID來取消定時器。
uElapse: 定時器間隔,以毫秒為單位。指定定時器在多久后觸發(fā)一次。
lpTimerFunc: 定時器回調(diào)函數(shù),可選參數(shù)。當(dāng)定時器觸發(fā)時,系統(tǒng)會調(diào)用此函數(shù)。
以下是一個使用SetTimer函數(shù)的示例:
#include
#include <windows.h>
// 定時器回調(diào)函數(shù)
VOID CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
{
std::cout << “Timer Event” << std::endl;
}
int main()
{
// 創(chuàng)建定時器,每1000毫秒(1秒)觸發(fā)一次定時器事件
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;
}
在上面的示例中,我們創(chuàng)建了一個每1秒觸發(fā)一次的定時器,并定義了一個名為TimerProc的定時器回調(diào)函數(shù)。在主函數(shù)中,我們使用GetMessage循環(huán)等待定時器事件的發(fā)生。最后,我們使用KillTimer函數(shù)取消定時器。
注意:SetTimer函數(shù)是在Windows平臺上使用的API,所以上述示例只能在Windows操作系統(tǒng)上運行。