原文转自 http://blog.csdn.net/hellozhd/article/details/8213359
在对话框中使用定时器:
1.定义定时器
#define TIMER1 1
2.开启定时器
在需要开启定时器的地方加入:SetTimer(TIMER1,1000,NULL);//启动定时器1,定时时间是1秒
3.关闭定时器
在需要关闭的地方加入:KillTimer(TIMER1);
4.增加定时器的消息响应函数
在类向导中,增加对话框的WM_TIMER消息,产生void CXXXDlg::OnTimer(UINT nIDEvent)函数,
在其中加入需要在定时器中处理的内容
void CTMSDlg::OnTimer(UINT_PTR nIDEvent) { //重新加载图片,加载完后关闭定时器 if (nIDEvent == TIMER1) { TBMeeting::Algorithms::Get().LoadImage(this, "./images/SettingNormal.png", IDC_PIC_CTRL_SETTING); KillTimer(TIMER1); } CDialogEx::OnTimer(nIDEvent); }
附:
SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT*lpfnTimer)(HWND,UINT,UINT,DWORD));
其中:
UINT nIDEvent:定时器的ID,在一个程序中用这个ID来确定是那个定时器发送的消息。
UINT nElapse: 定义刷新时间,即间隔多长时间刷新一次,单位是毫秒。
void (CALLBACK EXPORT* lpfnTimer)( HWND, UINT, UINT, DWORD):回调函数的参数,实现刷新时所做的操作,一般情况下都设为0。