C++定时器SetTimer使用方法

来源:赵克立博客 分类: C/C++ 标签:C/C++发布时间:2014-09-16 11:09:00最后更新:2014-09-16 13:26:06浏览:13708
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2014-09-16 13:26:06
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章

下面是settime的定义


UINT_PTR SetTimer(
  HWND hWnd,              // handle to window
  UINT_PTR nIDEvent,      // timer identifier
  UINT uElapse,           // time-out value
  TIMERPROC lpTimerFunc   // timer procedure
);
回调函数的定义



VOID CALLBACK TimerProc(
  HWND hwnd,         // handle to window
  UINT uMsg,         // WM_TIMER message
  UINT_PTR idEvent,  // timer identifier
  DWORD dwTime   // current system time
);

第一种方法

首先在头文件中定义定时器的回调函数的声明注意这个格式是固定的


static void CALLBACK TimerProc(HWND hwnd,UINT uMsg,UINT_PTR idEvent,DWORD dwTime);
之后就是在cpp文件中实现



void CALLBACK CFrameWindowWnd::TimerProc(HWND hwnd,UINT uMsg,UINT_PTR idEvent, DWORD dwTime){
//你的代码
}
最后在窗口初始化的时候设置定时器



SetTimer(this->m_hWnd,1,1000,(TIMERPROC)TimerProc);


在不需要的时候删除定时器


//KillTimer(this->m_hWnd,1);


第二种方法回调函数设置为null则默认会把向程序的主线程发送一个WM_TIMER消息然后在程序里处理这个消息就可以啦

//回调函数传null   在程序初始化时设置定时器
SetTimer(this->m_hWnd,1,1000,NULL);

//下面是在主程序中的处理函数
LRESULT CFrameWindowWnd::OnTimer(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled){
	return true;
}



微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python