新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > C++ MFC中定時器的使用

C++ MFC中定時器的使用

作者: 時間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
用處:定時重繪,形成動態(tài)波形圖。如溫度曲線。

思路:與單片機定時器中斷一樣,先打開定時器再把執(zhí)行的代碼寫進編譯器生成的CMy56Dlg::OnTimer(UINT nIDEvent)函數(shù)中。
其中 nIDEvent 中的n代表定時器的編號;通常與switch-case語句構(gòu)成多個定時器的同時使用。
步驟:
一.通過類向?qū)г趯υ捒蚧愔刑砑?OnTimer子類。步驟:【查看】-【類向?qū)А?【Messagemaps】-【CMy**Dlg】-【message】-【W(wǎng)M_timer】編譯后CMyDlg類此時會自動添加一個 OnTimer(UINT nIDEvent)子類。并添加一個響應函數(shù)
void CMy56Dlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CDialog::OnTimer(nIDEvent);//這句話編譯器自動添加,看樣子是判斷第幾個定時器觸發(fā)的響應。貌似可以刪掉。

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

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

}

三:例子
假定用的是定時器一,定時1s:
1.【查看】-【類向?qū)А?【Messagemaps】-【CMy**Dlg】-【message】-【W(wǎng)M_timer】并編譯
2.開啟定時器:
SetTimer(1,1000,NULL);//定時器一,定時一秒。
SetTimer(2,1500,NULL);//定時器二,定時1.5秒。
3.觸發(fā)函數(shù):

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

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



關(guān)鍵詞: C++MFC定時

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉