C++ MFC中定時器的使用

2021-01-08 電子產品世界

用處:定時重繪,形成動態波形圖。如溫度曲線。

思路:與單片機定時器中斷一樣,先打開定時器再把執行的代碼寫進編譯器生成的CMy56Dlg::OnTimer(UINT nIDEvent)函數中。
其中 nIDEvent 中的n代表定時器的編號;通常與switch-case語句構成多個定時器的同時使用。
步驟:
一.通過類嚮導在對話框基類中添加 OnTimer子類。步驟:【查看】-【類嚮導】-【Messagemaps】-【CMy**Dlg】-【message】-【WM_timer】編譯後CMyDlg類此時會自動添加一個 OnTimer(UINT nIDEvent)子類。並添加一個響應函數
void CMy56Dlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CDialog::OnTimer(nIDEvent);//這句話編譯器自動添加,看樣子是判斷第幾個定時器觸發的響應。貌似可以刪掉。

本文引用地址:http://www.eepw.com.cn/article/201612/324431.htm

}
二.到此就可以使用定時器了。
使用方法:首先執行SetTimer(UINT nIDEvent,timer,NULL);其中UINT nIDEvent是定時器編號,
需自己設定想用定時器1就設為1。雷同於單片機的定時器1和2。timer是uint型,表示定時時間,單位為ms.NULL保留。
然後添加中斷函數如下:
void CMy56Dlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CDialog::OnTimer(nIDEvent);

}

三:例子
假定用的是定時器一,定時1s:
1.【查看】-【類嚮導】-【Messagemaps】-【CMy**Dlg】-【message】-【WM_timer】並編譯
2.開啟定時器:
SetTimer(1,1000,NULL);//定時器一,定時一秒。
SetTimer(2,1500,NULL);//定時器二,定時1.5秒。
3.觸發函數:

void CMy56Dlg::OnTimer(UINT nIDEvent)//通過nIDEvent來區別不同的定時器引發的中斷
{
// TODO: Add your message handler code here and/orcalldefault
switch(nIDEvent)

{ case 1: //1號定時器應該處理的事情
OnPaint();
case 2: //2號定時器應該處理的事情
SetDlgItemText(IDC_EDIT1,("hello"));
}
}


相關焦點

  • mfc是什麼
    微軟公司除了推出Windows作業系統以外,還會研發類庫從而方便自身開發人員的工作,那麼mfc是什麼?下面由我來介紹一下。 mfc是什麼  1、mfc是微軟基礎類庫的簡稱,是微軟公司實現的一個c++類庫,主要封裝了大部分的windows API函數,並且包含一個應用程式框架,以減少應用程式開發人員工作量
  • C++定時器的實現
    個人認為一個完備的定時器需要有如下功能:在某一時間點執行某一任務在某段時間後執行某一任務重複執行某一任務N次,任務間隔時間T如何實現定時器下面是我自己實現的定時器邏輯,源碼連結最後會附上。定時器中主要的數據結構優先級任務隊列:隊列中存儲任務,每個任務會添加時間戳,最近的時間戳的任務會先出隊。鎖和條件變量:當有任務需要執行時,用於通知正在等待的線程從任務隊列中取出任務執行。
  • PLC中定時器的使用方法
    在PLC控制系統中,定時器的用途極為廣泛,它相當於繼電接觸器控制電路的時間繼電器。下面我介紹一下pLc當中的定時器的應用方法及在梯形圖和指令表中的格式。定時器助記符用「TM」表示,根據解析度不同可分為TMR,TMX,和TMY三種,在實際應用中可根據要求的精度和取值範圍選用不同類型的定時器。下面通過幾個實例介紹一下定時器的使用方法。㈠,下圖是簡單定時器梯形圖,完成的功能是當x1由off一on時,x類型3號定時器啟動,經過5秒常開觸點T3閉合,輸出接點y0閉合。
  • 如何在FB塊中使用操作定時器?
    在這篇文章就講一個TON及TOF定時器的案例,來讓大家熟悉指令的用法,以及如何在軟體中進行添加和使用。使用定時器有過多背景DB塊怎麼辦?在FB塊中使用定時器如何操作?我們帶著這兩個問題去學習吧。我們知道S7-1200 PLC的每一個定時器都是一個函數塊,每個定時器都使用16位元組的IEC_Timer數據類型的DB結構來存儲指定的定時器數據。那麼我們每調用一個定時器指令就需要給它分配一個背景DB塊,當程序中使用的定時器指令較多時,系統會生成多個DB塊。
  • 前端必備技能:JS中定時器的使用
    定時器分為兩種:setTimeout(一次性),setInterval(周期性)setTimeout:setTimeout() 方法用於在指定的毫秒數後調用函數或計算表達式。使用:setTimeout(function(){ 被執行方法或內容); }, 毫秒時間);實例:setTimeout(function () { console.log("hello world");},3000)
  • PLC定時器原理及使用技巧
    1、延時接通定時器TON工作時序圖下圖所示為S7-200中給出的一個TON(延時接通)定時器的工作實例。從時序圖中給出了定時器三種典型工況:(1)、定時器引腳IN接通時間未達到設定時長(PT中的值10×解析度100ms=10s),當IN無效時,定時器復位。對於定時器的定時完成標誌來說似乎什麼都沒有發生過,要麼成功,要麼失敗,沒有人承認你成功一半!最困難的時候堅持一下。
  • 定時器的使用方法 MM32主/從定時器同步與精準定時操作實例
    定時器的使用方法 MM32主/從定時器同步與精準定時操作實例 靈動微電子 發表於 2021-01-11 11:25:01 MM32 定時器 1、定時器同步
  • 使用plsql創建oracle定時器
    工作中,我們使用的資料庫大部分是oracle、mysql、db2、sql server等資料庫,在使用oracle最匹配的工具plsql的時候,如果用plsql創建定時器呢?下面我簡單介紹使用工具創建定時器的方法。
  • 實戰PyQt5: 099-使用定時器
    在Qt中有兩種使用定時器的方法,一種方法是使用QObject類的定時器;另一種方法是使用當定時器觸發時,應用程式會發送一個QTimerEvent()事件。在Qt事件循環中,處理器按照事件隊列的順序來處理定時器事件。如果處理器正忙於其它事件處理時,定時器就不能被立即處理。
  • Win7丟失mfc110u.dll怎麼辦?向你分享mfc110u.dll丟失的解決方法
    就如最近就有Win7用戶反映,電腦開機提示mfc110u.dll文件丟失,導致系統裡很多程序都運行失敗。那麼,Win7丟失mfc110u.dll怎麼辦呢?下面,我們就一起往下看看吧!方法步驟1、下載mfc110u.dll文件;2、解壓文件並複製到系統目錄 C:Windows\System32中;3、按Win+R打開運行窗口,輸入regsvr32 mfc100u.dll,回車執行即可。
  • STM32通用定時器使用詳解
    每個定時器都是完全獨立的,沒有互相共享任何資源。它們可以一起同步操作。定時器可以進行定時器基本定時,輸出4路PWM,輸入捕獲本文詳細介紹這三個功能並且利用定時器3並且示例代碼使用2.開發環境開發平臺:keil5單片機:STM32F103ZET6#3.基本定時功能## 3.1定時器時鐘來源分析STM32部分時鐘樹:
  • Win10無法運行文件提示計算機中丟失mfc120.dll
    在Windows10正式版系統中運行某個文件時,遇到了錯誤提示「無法啟動此程序,因為計算機中丟失mfc120.dll」,這該怎麼辦呢?其實,該問題是由於電腦未安裝運行庫導致的。下面,PConline小編就給大家分享下具體解決方法。步驟如下:1、下載安裝360安全衛士;
  • C++常用庫之UI庫(一)
    之前的文章裡提到過,c++的第三方庫非常豐富,而且不乏一些高質量開源庫。這些第三方庫為我們開發提供了非常大的便利,極大提高了開發效率,也降低了維護難度。這幾天就按照分類介紹下常用C++第三方庫。就從UI庫說起吧。
  • FANUC PMC定時器使用時幾點注意事項
    1.定時器計時時間顯示錯誤在PLC中監控定時器計時數值時,發生計時數值錯亂的現場,如上圖計時顯示2701秒已超出定時器額定計時數值1572秒,為什麼會出現這種情況呢?建議在定時器未工作時,修改定時器設定時間。若在定時器執行中出現紊亂且無法斷開執行條件時,可通過開關機進行復位。
  • 詳解STM32中定時器的時鐘源
    打開APP 詳解STM32中定時器的時鐘源 胡薇 發表於 2018-09-03 17:14:39 STM32中有多達8個定時器,
  • 如何使用plsql工具創建oracle資料庫的定時器
    我們使用的資料庫大部分是oracle、mysql、db2、sql server等資料庫,在使用oracle最匹配的工具plsql,如何用plsql創建定時器呢?下面我簡單介紹使用工具創建定時器的方法。通過plsql查看tables、views等文件夾,找到定時器對應的DBMS_Jobs文件夾。在文件夾或者在已有的定時器上右鍵 new... 創建一個新的job(定時器)輸入紅色選中的必輸參數。What裡面是一些存儲過程,可以是一個或者多個。多個之間用分好;隔開,可以數據一下注釋說明,格式「/*存過說明*/。點擊應用即可保存。
  • Win7丟失mfc110u.dll怎麼辦?dll丟失解決方法
    就如最近就有Win7用戶反映,電腦開機提示mfc110u.dll文件丟失,導致系統裡很多程序都運行失敗。那麼,Win7丟失mfc110u.dll怎麼辦呢?下面,我們就一起往下看看吧!  方法步驟  1、下載mfc110u.dll文件;  2、解壓文件並複製到系統目錄 C:
  • 快速上手Dev-c++編譯器,福利到,怎樣快速使用Dev-c++編譯器
    在學習C/C++語言的時候,我們會使用到各種各樣的語言編譯器,這些編譯器每個都相似,但是所擁有的界面以及提示都會有所差別,今天就讓我們簡單的學習怎樣快速使用Dev-c++編譯器,簡單的實現C語言的輸出。1.
  • 單片機中各種周期的關係與定時器原理
    以STM32F103為例,進行解析  STM32的TIM一般有高級定時器TIM1,(TIM8隻有在互聯性產品有),普通定時器TIM2,TIM3,TIM4,(TIM5,TIM6,TIM7有點設備中沒有);今天就只介紹普通定時器,因為高級定時器我還不會!每一個普通定時器都有4路通道!
  • 屏障定時器流程測試方法以及使用此方法
    打開APP 屏障定時器流程測試方法以及使用此方法 FPGA開發圈 發表於 2020-06-09 14:51:12 本篇博文提供了一種屏障定時器流程測試方法以及使用此方法時可能出現問題。 屏障定時器流程測試方法多種多樣,包括以下 2 種方法: 移除鏡像末尾部分 嘗試破壞同步 (Sync) 字 對於選項 1(刪除鏡像末尾部分),可觀察到由於超時錯誤導致的回退。 但使用選項 2(破壞同步字)時則可能出現問題。