1。在CSwfPlayerDlg类定义中 加入定时器变量的声明,使用定时器的方法以及停止定时器的方法: class CSwfPlayerDlg : public CDialog { ....protected: HICON m_hIcon; HWND m_hStatusWindow; UINT m_Timer1; //定时器变量的声明 .....private: void UseTimer1(); //使用定时器 void StopTimer1(); //停止定时器 };2。UseTimer1()的代码为: void CSwfPlayerDlg::UseTimer1()//使用定时器 { if (!m_Timer1) { SetTimer(m_Timer1, 500, NULL); } }3。StopTimer1()的代码为: void CSwfPlayerDlg::StopTimer1()//如果定时器已经启用,则停止它 { if (m_Timer1) { KillTimer(m_Timer1); m_Timer1 = 0; } }4。在CSwfPlayerDlg的OnInitDialog()加初始化定时变量为0,表示未使用: BOOL CSwfPlayerDlg::OnInitDialog() { CDialog::OnInitDialog();.......... m_Timer1 = 0; //初始化定时器为未用 return TRUE; // return TRUE unless you set the focus to a control }5。对定时器消息WM_TIMER的处理 void CSwfPlayerDlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default CDialog::OnTimer(nIDEvent); char buf[50]; char fmt2[] = {"当前为第%d帧"}; wsprintf(buf, fmt2, m_SwfBox.CurrentFrame()); ::SendMessage(m_hStatusWindow, SB_SETTEXT, 1, (LPARAM)&buf); }
这样在我们需要使用定时器时就调用UseTimer1(),要停止定时器时就调用StopTimer1()。