C++ MFC中定時(shí)器的使用
思路:與單片機(jī)定時(shí)器中斷一樣,先打開(kāi)定時(shí)器再把執(zhí)行的代碼寫(xiě)進(jìn)編譯器生成的CMy56Dlg::OnTimer(UINT nIDEvent)函數(shù)中。
其中 nIDEvent 中的n代表定時(shí)器的編號(hào);通常與switch-case語(yǔ)句構(gòu)成多個(gè)定時(shí)器的同時(shí)使用。
步驟:
一.通過(guò)類向?qū)г趯?duì)話框基類中添加 OnTimer子類。步驟:【查看】-【類向?qū)А?【Messagemaps】-【CMy**Dlg】-【message】-【W(wǎng)M_timer】編譯后CMyDlg類此時(shí)會(huì)自動(dòng)添加一個(gè) OnTimer(UINT nIDEvent)子類。并添加一個(gè)響應(yīng)函數(shù)
void CMy56Dlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CDialog::OnTimer(nIDEvent);//這句話編譯器自動(dòng)添加,看樣子是判斷第幾個(gè)定時(shí)器觸發(fā)的響應(yīng)。貌似可以刪掉。
}
二.到此就可以使用定時(shí)器了。
使用方法:首先執(zhí)行SetTimer(UINT nIDEvent,timer,NULL);其中UINT nIDEvent是定時(shí)器編號(hào),
需自己設(shè)定想用定時(shí)器1就設(shè)為1。雷同于單片機(jī)的定時(shí)器1和2。timer是uint型,表示定時(shí)時(shí)間,單位為ms.NULL保留。
然后添加中斷函數(shù)如下:
void CMy56Dlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CDialog::OnTimer(nIDEvent);
}
三:例子
假定用的是定時(shí)器一,定時(shí)1s:
1.【查看】-【類向?qū)А?【Messagemaps】-【CMy**Dlg】-【message】-【W(wǎng)M_timer】并編譯
2.開(kāi)啟定時(shí)器:
SetTimer(1,1000,NULL);//定時(shí)器一,定時(shí)一秒。
SetTimer(2,1500,NULL);//定時(shí)器二,定時(shí)1.5秒。
3.觸發(fā)函數(shù):
void CMy56Dlg::OnTimer(UINT nIDEvent)//通過(guò)nIDEvent來(lái)區(qū)別不同的定時(shí)器引發(fā)的中斷
{
// TODO: Add your message handler code here and/orcalldefault
switch(nIDEvent)
{ case 1: //1號(hào)定時(shí)器應(yīng)該處理的事情
OnPaint();
case 2: //2號(hào)定時(shí)器應(yīng)該處理的事情
SetDlgItemText(IDC_EDIT1,("hello"));
}
}
評(píng)論