新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > C++ MFC中定时器的使用

C++ MFC中定时器的使用

作者:时间:2016-12-01来源:网络收藏
用处:定时重绘,形成动态波形图。如温度曲线。

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

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

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



关键词: C++MFC定时

评论


相关推荐

技术专区

关闭