?? timer6?
字號:
1:將Winmm.lib和Mmsystem.h添加到工程中;
2:在頭文件中定義延遲時間時鐘間隔和時鐘分辨率,如下:
//定義1ms時鐘間隔,以ms為單位
# define ONE_MILLI_SECOND 1
//定義時鐘分辨率,以ms為單位
# define TIMER_ACCURACY 1
3: 在*.cpp文件中定義全局變量
UINT wTimerRes_1ms;//定義時間間隔
UINT wAccuracy;//定義分辨率
UINT TimerID_1ms,TimerID1_1ms;//定義定時器句柄
4:在*.cpp文件的構(gòu)造函數(shù)中初始化全局變量,并設(shè)置定時器的分辨率:
wTimerRes_1ms=ONE_MILLI_SECOND;// 給時間間隔變量賦值
TIMECAPS tc;
//利用函數(shù)timeGetDevCaps取出系統(tǒng)分辨率的取值范圍,如果無錯則繼續(xù)
if(timeGetDevCaps(&tc,sizeof(TIMECAPS))==TIMERR_NOERROR)
{
// 分辨率的值不能超出系統(tǒng)的取值范圍
wAccuracy=min(max(tc.wPeriodMin,TIMER_ACCURACY),tc.wPeriodMax);
//調(diào)用timeBeginPeriod函數(shù)設(shè)置定時器的分辨率
timeBeginPeriod(wAccuracy);
}
5:在在*.cpp文件的析構(gòu)函數(shù)中刪除定時器:
CMulti_TimerDlg::~CMulti_TimerDlg()
{
timeKillEvent(TimerID_1ms);
timeEndPeriod(wAccuracy);
}
6:定義定時器的回調(diào)函數(shù),類似于中斷處理程序,一定要聲明為全局PASCAL函數(shù),否則編譯會有問題
void PASCAL OneMilliSecondProc(UINT wTimerID, UINT msg,DWORD dwUser,DWORD dwl,DWORD dw2);
//聲明回調(diào)函數(shù)
void PASCAL OneMilliSecondProc(UINT wTimerID, UINT msg,DWORD dwUser,DWORD dwl,DWORD dw2)
{
CMulti_TimerDlg *timer =(CMulti_TimerDlg *)dwUser;
timer->SendMessage(WM_UPDATETIME4,0,0);
//timeKillEvent(TimerID_1ms);
//AfxMessageBox("在此回調(diào)函數(shù)中安排需要執(zhí)行的任務(wù)");
}
7:添加自定義定時器定時到的相關(guān)處理消息即程序,向timer3中第2點(diǎn)一樣:
#define WM_UPDATETIME4 WM_USER+1003
void OnUpdateTime4();
ON_MESSAGE(WM_UPDATETIME4,OnUpdateTime4)
void CMulti_TimerDlg::OnUpdateTime4()
{
struct _timeb timebuffer;
char *timeline;
//獲得毫秒級的時間
_ftime( &timebuffer );
timeline = ctime(&(timebuffer.time));
//格式化時間
CString m_Str;
m_Str.Format("%.19s.%hu %s", timeline, timebuffer.millitm, &timeline[20]);
SetDlgItemText(IDC_EDIT5,m_Str);
}
8:啟動多媒體定時器:
void CMulti_TimerDlg::OnButtonTime6()
{
TimerID_1ms = timeSetEvent(wTimerRes_1ms, wAccuracy,
(LPTIMECALLBACK) OneMilliSecondProc,
(DWORD)this,TIME_ONESHOT);
}
或
void CMulti_TimerDlg::OnButtonTime61()
{
TimerID1_1ms = timeSetEvent(wTimerRes_1ms, wAccuracy,
(LPTIMECALLBACK) OneMilliSecondProc1,
(DWORD)this,TIME_PERIODIC);
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -