MFC中定时器OnTimer函数的使用

时间:2021-12-13 03:21:42

在MFC中我们经常需要定时读写数据,或者定时刷新界面,更新数据和状态,这就需要用到定时器,其实现函数为OnTimer,下面对其用法步骤(基于VS2010)进行简要说明:

1、在类视图中点击需要使用定时器的对话框类,在属性窗口选择消息,在下面的消息函数中选中WM_TIMER,后面选择添加OnTimer函数,如下图所示:
MFC中定时器OnTimer函数的使用

2、编写OnTimer函数

void CLD_PowerDlg::OnTimer(UINT_PTR nIDEvent)           //定时读取数据
{
switch (nIDEvent)
{
case 1: //定时器1处理函数,定时发送数据进行更新
{
char *a=NULL;
a = new char[12];
a[0]=0x55; a[1]=0xAA; a[2]=0xdc; //数据开头
a[3]=0x06;
a[4]=0x00;
a[5]=0x03;
a[6]=0x44;
a[7]=0x44;
a[8]=0xcc; a[9]=0x33; a[10]=0xc3; a[11]=0x3c;//数据结尾
m_SerialPort.WriteData(a,12);
a=NULL;
delete a;
break;
}

case 2: //定时器2位为状态栏时间信息
{
CTime t1;
t1=CTime::GetCurrentTime();//获取当前系统时间
m_Statusbar.SetPaneText(2,t1.Format("%Y-%m-%d %H:%M:%S")); //状态栏显示时间
break;
}
}

CDialogEx::OnTimer(nIDEvent);
}

3、启动定时器

SetTimer(1,1000,NULL);      //参数:定时器标号,定时时间(ms)。启动定时器1,每隔1s刷新一次

4、关闭定时器

    KillTimer(1);                               //关定时器1

欢迎各位高手大神批评指正,也欢迎各位同道中人留言讨论!