本文主要是介绍SetTimer和KillTimer函数简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、简介
1.1 SetTimer简介
UINT_PTR SetTimer(
HWND hWnd,
UINT_PTR nIDEvent,
UINT uElapse,
TIMERPROC lpTimerFunc
);
功能:
创建或设置一个定时器。
参数:
HWND hWnd, hWnd是和timer关联的窗口句柄,此窗口必须为调用SetTimer的线程所有;如果hWnd为NULL,没有窗口和timer相关联并且nIDEvent参数被忽略。
UINT_PTR nIDEvent, nIDEvent是timer的标识,为非零值;如果hWnd为NULL则被忽略;如果hWnd非NULL而且与timer相关联的窗口已经存在一个为此标识的timer,则此次SetTimer调用将用新的timer代替原来的timer。timer标识和窗口相关,两个不同的窗口可以拥有nIDEvent相同的tiemr。
UINT uElapse, uElapse是以毫秒指定的计时间隔值。
TIMERPROC lpTimerFunc, lpTimerFunc是一个回调函数的指针,俗称TimerFunc;如果lpTimerFunc为NULL,系统将向应用程序队列发送WM_TIMER消息;如果lpTimerFunc指定了一个值,DefWindowProc将在处理WM_TIMER消息时调用这个lpTimerFunc所指向的回调函数,因此即使使用TimerProc代替处理WM_TIMER也需要向窗口分发消息。 其中TimerProc函数的原型如下:
VOID CALLBACK TimerProc(
HWND hwnd,
UINT uMsg,
UINT_PTR idEvent,
DWORD dwTime
);
返回值:
如果hWnd为NULL,返回值为新建立的timer的ID,如果hWnd非NULL,返回一个非0整数,如果SetTimer调用失败则返回0.
1.2 KillTimer简介
BOOL KillTimer(
HWND hWnd,
UINT_PTR uIDEvent
);
功能:
销毁指定的定时器。
参数:
HWND hWnd, 与特定timer相关联的窗口句柄,
UINT_PTR uIDEvent, 指定将要被销毁的timer的ID。如果hWnd不为NULL,则该参数与传递给SetTimer函数的nIDEvent相同;如果hWnd为NULL,则该参数与SetTimer函数的返回值相同。
返回值:
如果函数执行成功,返回非零值;如果执行不成功,返回零值。
2、示例
#include <windows.h>void CALLBACK Timer( HWND hwnd,
UINT uMsg,
UINT_PTR idEvent,
DWORD dwTime)
{
MessageBox(0,"hello","test",0);//弹出对话框
}
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
unsigned int setId=SetTimer(0,1,3000,Timer);//每1秒调用一次回调函数Timer
if (0 != setId)
{
MessageBox(0,"定时器创建成功","test",0);
}
else
{
MessageBox(0,"定时器创建失败","test",0);
}
int killId = KillTimer(0,setId);
if (0 != killId)
{
MessageBox(0,"定时器销毁成功","test",0);
}
else
{
MessageBox(0,"定时器创建失败","test",0);
}
return 0;
}
这篇关于SetTimer和KillTimer函数简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!