原文轉自 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。