一、定时器消息
1、可以在程序中设置定时器,当到达时间间隔时,定时器会向程序发送一个WM_TIMER消息。
2、定时器的精度是毫秒,但是准确度很低。
3、例如设置时间间隔为1000ms,但是会在非1000毫秒到达。
二、消息的参数
1、WPARAM - 定时器ID
2、LPARAM - 定时器处理函数的指针
三、定时器使用
1、创建定时器
UINT_PTR SetTimer( HWND hWnd,//定时器窗口句柄 UINT_PTR nIDEvent, //定时器ID UINT uElapse,//时间间隔 TIMERPROC lpTimerFunc //定时器处理函数指针 );创建成功,返回非0。
使用窗口处理函数,做为定时器处理函数,lpTimerFunc为NULL
使用定时器处理函数处理定时器消息。
2、消息处理 WM_TIMER
case WM_TIMER: 定时器窗口处理(hWnd,wParam); break; case WM_CREATE://创建定时器 SetTimer(hWnd,10001,1000,NULL); SetTimer(hWnd, 10002, 3000, 哎呦); break; void 定时器窗口处理(HWND hWnd,WPARAM wParam) { wchar_t str[256] = { 0 }; swprintf_s(str, L"定时器窗口处理:%d\n", wParam); WriteConsole(g_DOS窗口句柄, str, wcslen(str), NULL, NULL);//DOS显示 }
3、关闭定时器
BOOL KillTimer( HWND hWnd,//定时器窗口句柄 UINT_PTR uIDEvent //定时器ID );
case WM_LBUTTONDOWN: KillTimer(hWnd, 10001); break;