微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > C++ MFC中定时器的使用

C++ MFC中定时器的使用

时间:12-01 来源:互联网 点击:
用处:定时重绘,形成动态波形图。如温度曲线。

思路:与单片机定时器中断一样,先打开定时器再把执行的代码写进编译器生成的CMy56Dlg::OnTimer(UINT nIDEvent)函数中。
其中 nIDEvent 中的n代表定时器的编号;通常与switch-case语句构成多个定时器的同时使用。
步骤:
一.通过类向导在对话框基类中添加 OnTimer子类。步骤:-----编译后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.-----并编译
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"));
}
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top