?? timer.h
字號:
#ifndef __TIMER_H__
#define __TIMER_H__
//=======================================================================================================================
/// Timer 努貳膠
/**
@history
- 2005.2.28 : Timer based time 欄肺 官操菌促!
*/
//=======================================================================================================================
#pragma once
namespace util
{
class Timer
{
public:
Timer():m_dwExpireTime(0),m_dwIntervalTime(0),m_bCheckTime(FALSE) {}
~Timer(){}
public:
inline void SetTimer( DWORD dwIntervalTime )
{
m_dwIntervalTime = dwIntervalTime;
Reset();
}
inline DWORD GetIntervalTime() { return m_dwIntervalTime; }
// m_dwIntervalTime 矯埃 埃拜闌 弊措肺 蠟瘤竅絆 促矯 鷗撈贛甫 倒赴促.
inline void Reset(/*m_dwIntervalTime*/)
{
m_dwExpireTime = GetTickCount() + m_dwIntervalTime;
EnableCheckTime();
}
// 鷗撈贛甫 resume
inline VOID EnableCheckTime()
{
m_bCheckTime = TRUE;
}
// 鷗撈贛甫 吝瘤茄促.
inline VOID DisableCheckTime()
{
m_bCheckTime = FALSE;
}
inline VOID IncreasingExpireTime( DWORD dwExpireTime )
{
m_dwExpireTime += dwExpireTime;
}
// 父豐鷗烙撈 登扁鱉瘤狼 泅犁 柳青伏
float GetProgressRatio()
{
int dwProgressTime = GetTickCount() - (m_dwExpireTime - m_dwIntervalTime);
return min(1.0f,((float)dwProgressTime / (float)m_dwIntervalTime));
}
// problem : 撈 竊薦甫 啊闡 齲免且 版快 IsExpired() == TRUE啊 登綽 版快啊 積變促.
// 恐唱擱 1 Tick撈扼檔 坷瞞啊 積扁瘤 臼扁 困秦 IsExpired()齲免茄 矯埃闌 利儈竅瘤 臼綽促.
// Therefore, 撈凡版快 IsExpired() == TRUE等 饒俊 Reset()甫 茄鍋 齲免秦 霖促!
inline BOOL IsExpired( BOOL bReset=TRUE )
{
DWORD dwCurTime;
if( m_bCheckTime && ( dwCurTime = GetTickCount() ) >= m_dwExpireTime )
{
if( bReset )
{
m_dwExpireTime = dwCurTime + m_dwIntervalTime;
}
return TRUE;
}
else
return FALSE;
}
// 茄鍋父 鷗撈贛甫 倒府扁 困秦
inline BOOL IsExpiredManual( BOOL bReset=TRUE )
{
DWORD dwCurTime;
if( m_bCheckTime && ( dwCurTime = GetTickCount() ) >= m_dwExpireTime )
{
if( bReset )
{
m_dwExpireTime = dwCurTime + m_dwIntervalTime;
}
DisableCheckTime();
return TRUE;
}
else
return FALSE;
}
void InitCoolTime()
{
m_dwExpireTime = 0;
}
inline DWORD GetExpireTime() { return m_dwExpireTime; }
private:
BOOL m_bCheckTime;
DWORD m_dwExpireTime;
DWORD m_dwIntervalTime;
};
}//End of namespace util
#endif //__TIMER_H__
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -