四时宝库

程序员的知识宝库

win32编程 -- 定时消息(windows编程中定时器消息)


好遗憾,明明不想失去,却又无能为力,说真的,那种想放弃又想爱的滋味,真折磨人。。。。

---- 网易云热评

一、定时器消息

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;

欢迎关注公众号:顺便编点程?

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接