MFC定时器的使用
创建2个按钮事件和一个静态文本IDC_STATIC_TIME
1 void CMyTimeDlg::OnButton1() //按钮1 2 { 3 SetTimer(1,1000,NULL);//启动定时器1,定时时间是1秒 4 } 5 6 void CMyTimeDlg::OnButton2() //按钮2 7 { 8 KillTimer(1); //关闭定时器1。 9 } 10 然后添加消息响应VM_TIMER 11 void CMyTimeDlg::OnTimer(UINT nIDEvent) 12 { 13 // TODO: Add your message handler code here and/or call default 14 static int nTimer=0; 15 CString str=""; 16 str.Format("Timer: %d",nTimer++); 17 CWnd *pWnd=GetDlgItem(IDC_STATIC_TIME); //获取静态文本的指针 18 pWnd->SetWindowText(str); //在Lable中设置新值,表明定时器已经工作。 19 20 CDialog::OnTimer(nIDEvent); 21 }
2.回调函数型定时器实例
定义一个按钮
1 void CALLBACK TimerProc(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime ) 2 { 3 static int nTimer=0; 4 CString str=""; 5 str.Format("Timer: %d",nTimer++); 6 AfxMessageBox(str);//定时器时间到,强出一对话框,表明定时器已经运行。 7 } 8 9 void CMyTimeDlg::OnButton3() 10 { 11 SetTimer(1,1000,(TIMERPROC)TimerProc);//用回调函数处理,此时对话框的消息处理函数不再处理。 12 //KillTimer(hWnd,ID_TIMER) ; 结束操作 13 }