用處:定時重繪,形成動態(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)子類。并添加一個響應(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"));
}
}