1: typedef list<ISonicBaseData *> LIST_BASE_DATA;
2: class ISonicBaseData
3: { 4: public:
5: //刪除了和定時(shí)器不相關(guān)的代碼
6:
7: typedef map<int, DWORD> INTERVAL_TO_TIMER; //定時(shí)器間隔和定時(shí)器id的map,注意一個(gè)定期是間隔可能關(guān)聯(lián)著多個(gè)定時(shí)器ID
8:
9: void OnInternalTimer();//全局的窗口的的輪詢周期(10ms)到達(dá)如果當(dāng)前類中設(shè)置了定時(shí)器,此方法會(huì)被調(diào)用
10: virtual void SetInternalTimer(DWORD dwTimerId, int nInterval, BOOL bOnceTimer = FALSE);//設(shè)置定時(shí)器,注意 dwTimerId 的定義
11: virtual void KillInternalTimer(DWORD dwTimerId);
12: virtual BOOL QueryInternalTimer(DWORD dwTimerId);//查看當(dāng)前是否設(shè)置了dwTimerId的定時(shí)器
13: virtual void ClearInternalTimer();//刪除所有的定時(shí)器
14: virtual void OnInternalTimer(DWORD dwTimerId); //dwTimerId 對(duì)應(yīng)的定時(shí)周期到達(dá)
15:
16: DWORD m_dwTimer; // 從第一次設(shè)置定時(shí)器起到現(xiàn)在止一共有多少毫秒
17: DWORD m_dwTimerOnce; //保存所有一次性定時(shí)器的定時(shí)器ID
18: DWORD m_dwTimerId; // 保存當(dāng)前的所有定時(shí)器ID,使用 位掩碼
19: INTERVAL_TO_TIMER m_mapIntervalToTimer;
20: HWND m_hWnd;
21: static LIST_BASE_DATA m_TimerList; //靜態(tài)成員,類似全局變量的作用,保存了當(dāng)前所有設(shè)置了定時(shí)器的 ISonicBaseData 的實(shí)例
22: };