MFC-定时器Timer
主要用途是按程序的设定间隔时间,间歇性的产生 WM_TIMER 消息,发送到指定窗口之后,在窗口中对 WM_TIMER 消息进行处理,完成指定的任务!
添加默认回调函数OnTimer
基本使用
void CdiansiqiDlg::OnBnClickedButton1() { // TODO: 在此添加控件通知处理程序代码 UINT_PTR ID = SetTimer(1,500,NULL);//创建一个定时器 /* 参数1:UINT_PTR nIDEvent 定时器ID,多个定时器时,可以通过该ID判断是哪个定时器 参数2:UINT nElapse 时间间隔,单位为毫秒 时间间隔范围:USER_TIMER_MINIMUM=0x0000000A 毫秒=10毫秒(最小值) USER_TIMER_MAXIMUM=0x7FFFFFFF 毫秒=596小时(最大值) 说明:每隔nElapse毫秒就执行一次回调函数 参数3:TIMERPROC lpTimerFunc 回调函数 NULL表示使用默认回调函数OnTimer 返回值:如果函数成功,则返回新建立的时钟ID 如果函数失败,返回值是零 */ } void CdiansiqiDlg::OnTimer(UINT_PTR nIDEvent) { // TODO: 在此添加消息处理程序代码和/或调用默认值 static int n = 0; CString str; str.Format(_T("n=%d"),n); SetDlgItemText(IDC_EDIT1, str); n++; CDialogEx::OnTimer(nIDEvent); } void CdiansiqiDlg::OnBnClickedButton2() { // TODO: 在此添加控件通知处理程序代码 BOOL b = KillTimer(1);//移除定时器 //参数:定时器ID }
实例工程下载:
链接:https://pan.baidu.com/s/1g5hALXXH130x0cMOe1PB1g 提取码:6666
void CdiansiqiDlg::OnBnClickedButton1() { // TODO: 在此添加控件通知处理程序代码 UINT_PTR ID = SetTimer(1,1000,NULL); UINT_PTR ID1 = SetTimer(2, 2000, NULL); } void CdiansiqiDlg::OnTimer(UINT_PTR nIDEvent) { //参数:定时器ID static int i1 = 0; static int i2 = 0; CString str; if (nIDEvent == 1) { str.Format(_T("i1=%d\r\n"), i1); ::OutputDebugString(str); i1++; } if (nIDEvent == 2) { str.Format(_T("i2=%d\r\n"), i2); ::OutputDebugString(str); i2++; } CDialogEx::OnTimer(nIDEvent); } void CdiansiqiDlg::OnBnClickedButton2() { BOOL b = KillTimer(1); b = KillTimer(2); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2022-04-05 浩辰CAD-常用设置
2019-04-05 我喜欢的电影