MFC中定时器OnTimer函数的使用

18 篇文章 1 订阅

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

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

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

  • 26
    点赞
  • 121
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值