溫馨提示×

c++的SetTimer函數(shù)怎么使用

c++
小億
319
2023-09-15 18:40:35
欄目: 編程語言

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)上運行。

0