專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

C++ MFC中定時器的使用

作者:黃波海   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年03月06日   【字體:

用處:定時重繪,形成動態(tài)波形圖。如溫度曲線。
  思路:與單片機定時器中斷一樣,先打開定時器再把執(zhí)行的代碼寫進(jìn)編譯器生成的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)子類。并添加一個響應(yīng)函數(shù)
void CMy56Dlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CDialog::OnTimer(nIDEvent);//這句話編譯器自動添加,看樣子是判斷第幾個定時器觸發(fā)的響應(yīng)。貌似可以刪掉。

}
二.到此就可以使用定時器了。
     使用方法:首先執(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/or call default
    switch(nIDEvent)

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

關(guān)閉窗口

相關(guān)文章