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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ 定时器的用法:SetTimer和Ontimer

發布時間:2023/12/18 c/c++ 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ 定时器的用法:SetTimer和Ontimer 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
摘要: Settimer是設置一個計時器并開始執行計時器Ontimer中的代碼,Ontimer是計時器所執行的代碼。 KillTimer用于停止計時器。 Settimer是設置,Ontimer是響應Settimer消息的。

SetTimer函數的用法

1)用WM_TIMER來設置定時器

先請看SetTimer這個API函數的原型

UINT_PTR?SetTimer(??????????????HWND?hWnd,//和定時器相關聯的窗口?????UINT_PTR?nIDEvent,//一個非0的數字標志這個定時器?????UINT?uElapse,//指定時間間隔,以毫秒為單位?????TIMERPROC?lpTimerFunc//一般指定為null? );

當在MFC的工程中如下:?

UINT_PTR?SetTimer(??????????????UINT_PTR?nIDEvent,//一個非0的數字標志這個定時器?????UINT?uElapse,//指定時間間隔,以毫秒為單位?????TIMERPROC?lpTimerFunc//一般指定為null? );

用法如下:

SetTimer(1,1000,NULL);

參數:

1:計時器的名稱;

1000:時間間隔,單位是毫秒;

NULL:使用onTime函數。


在每次時間到1s時會觸發WM_TIMER消息,其消息響應函數如下:?

void?CXXX::OnTimer(UINT_PTR?nIDEvent)?{?//?TODO:?在此添加消息處理程序代碼和/或調用默認值?????????//?此處加入如下代碼就好了:?????????switch(){?????????case?1:???????????????//做該做的事情?????????????????//當不需要的時候在此處調用KillTimer(1);???????????????break;?????????default:???????????????break;?????????}?CDialog::OnTimer(nIDEvent);? }

當不需要計時器的時候調用KillTimer(nIDEvent);

KillTimer(1);


2)如果我要加入兩個或者兩個以上的 timer怎么辦?

繼續用SetTimer函數吧,上次的timer的ID是1,這次可以是2,3,4。。。。

SetTimer(2,1000,NULL);SetTimer(3,500,NULL);

嗯,WINDOWS會協調他們的。當然onTimer函數體也要發生變化,要在函數體內添加每一個timer的處理代碼:

onTimer(nIDEvent){switch(nIDEvent){case?1:........;break;case?2:.......;break;case?3:......;break;} }

總結

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

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