×
嵌入式 > 嵌入式开发 > 详情

C++ MFC中定时器的使用

发布时间:2020-10-09 发布时间:
|
用处:定时重绘,形成动态波形图。如温度曲线。

思路:与单片机定时器中断一样,先打开定时器再把执行的代码写进编译器生成的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);//这句话编译器自动添加,看样子是判断第几个定时器触发的响应。貌似可以删掉。

}
二.到此就可以使用定时器了。
使用方法:首先执行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"));
}
}



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
大疆做不做军用无人机