日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

定时器Timer

發布時間:2025/3/14 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 定时器Timer 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??定時器Timer

? 創建定時器

? 銷毀定時器

? 代碼測試

?

?

一、? 創建定時器

?

UINT SetTimer(
?

HWND hWnd,?????????? ??// 指定關聯定時器的窗口句柄,在MFC版將省略此參數
??

UINT nIDEvent,??????? ???// 定時器ID ?

UINT uElapse,???????? ????// 時間間隔? 單位毫秒
??

TIMERPROC lpTimerFunc?? //定時器回調函數地址

);

定時器回調函數格式

VOID CALLBACK TimerProc(
?

HWND hwnd,??? ?// handle of window for timer messages
???

UINT uMsg,??? ???// WM_TIMER message
??

UINT idEvent, ????// timer identifier
??

DWORD dwTime?? // current system time
);

?

二、? 銷毀定時器

BOOL KillTimer(
?

HWND hWnd,??? // handle of window that installed timer
???在MFC版將省略此參數

UINT uIDEvent?? // timer identifier

);

三、? 代碼測試

?//實時顯示 當前時間? 參考C語言053

time_t t;

time(&t);

tm *TimeInfo=localtime(&t);

m_sTime.Format(L"%02d:%02d:%02d",TimeInfo->tm_hour,TimeInfo->tm_min,TimeInfo->tm_sec);

?

?

?

?

//代碼

// CDialog_Timer 消息處理程序

void CALLBACK EXPORT TimerProc(

???????? ???????? ???????? ???????? ???????? ???????? ???????? ?? HWND hWnd,????? // handle of CWnd that called SetTimer

???????? ???????? ???????? ???????? ???????? ???????? ???????? ?? UINT nMsg,????? // WM_TIMER

???????? ???????? ???????? ???????? ???????? ???????? ???????? ?? UINT nIDEvent,?? // timer identification

???????? ???????? ???????? ???????? ???????? ???????? ???????? ?? DWORD dwTime??? // system time

???????? ???????? ???????? ???????? ???????? ???????? ???????? ?? )

{

?

???????? if (nIDEvent==myTimerID) //

???????? {

???????? ???????? //執行代碼

???????? ???????? TRACE("my TimerProc %d\n",dwTime);

???????? ???????? //顯示當前時間

???????? ???????? time_t t;

???????? ???????? time(&t);

???????? ???????? tm *timeinfo=localtime(&t);

???????? ???????? TRACE("%02d:%02d:%02d",timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec);

???????? ?

???????? }

}

?

?

void CDialog_Timer::OnBnClickedButton1()

{

???????? // TODO: 在此添加控件通知處理程序代碼

???????? //SetTimer(1001,1000,NULL);//WM_TIMER

???????? SetTimer(1001,1000,TimerProc);//不產生WM_TIMER

}

?

LRESULT CDialog_Timer::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)

{

???????? // TODO: 在此添加專用代碼和/或調用基類

? //if (message==WM_TIMER)

? //{

???????? ?// if (wParam==myTimerID) //

???????? ?// {

???????? ???????? //? //執行代碼

???????? ???????? //? TRACE("1111111111\n");

???????? ???????? //? //顯示當前時間

???????? ???????? //? time_t t;

???????? ???????? //? time(&t);

???????? ???????? //? tm *timeinfo=localtime(&t);

???????? ???????? //? m_sTime.Format(L"%02d:%02d:%02d",timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec);

???????? ???????? //? UpdateData(false);

???????? ?// }

?

? //}

???????? return CDialog::WindowProc(message, wParam, lParam);

}

?

void CDialog_Timer::OnBnClickedButton2()

{

???????? // TODO: 在此添加控件通知處理程序代碼

???????? KillTimer(myTimerID);//銷毀定時器

}

?

void CDialog_Timer::OnTimer(UINT_PTR nIDEvent)

{

???????? // TODO: 在此添加消息處理程序代碼和/或調用默認值

???????? if (nIDEvent==myTimerID) //

???????? ???????? ?{

???????? ???????? ? //執行代碼

???????? ???????? ? TRACE("1111111111\n");

???????? ???????? ? //顯示當前時間

???????? ???????? ? time_t t;

???????? ???????? ? time(&t);

???????? ???????? ? tm *timeinfo=localtime(&t);

???????? ???????? ? m_sTime.Format(L"%02d:%02d:%02d",timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec);

???????? ???????? ? UpdateData(false);

???????? ???????? ?}

???????? CDialog::OnTimer(nIDEvent);

}

轉載于:https://www.cnblogs.com/15157737693zsp/p/3842090.html

總結

以上是生活随笔為你收集整理的定时器Timer的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。