MFC 定时器 SetTimer 如何使用回调函数

 

创建工程名TestCallBack

 

自定义回调函数   定义为全局函数

在TestCallBackDlg.h文件开头定义

#pragma once

void CALLBACK EXPORT TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime);

 

在TestCallBackDlg.cpp文件末尾实现函数

void CALLBACK EXPORT TimerProc(HWND hwnd,UINT message,UINT iTimerID,DWORD dwTime)
{

  //其中的参数我只知道hwnd和 iTimerID两个参数的作用,其他的不太清楚,message值得是消息但是是什么消息呢,dwTime也不知道

  //还望有大神指点一二
  SYSTEMTIME LocalTime;
  GetLocalTime(&LocalTime);
  TCHAR TimeBuffer[256];


  wsprintf(TimeBuffer,"%i年%i月%i日%i时%i分%i秒",LocalTime.wYear,LocalTime.wMonth
  ,LocalTime.wDay,LocalTime.wHour,LocalTime.wMinute,LocalTime.wSecond);


  if (iTimerID==1)
  {
    SetDlgItemText(hwnd,IDC_EDIT1,TimeBuffer);
  }
  else if (iTimerID==2)
  {
    SetDlgItemText(hwnd,IDC_EDIT2,TimeBuffer);
  }
}

 

添加Button1按钮,启动定时器

 

void TestCallBackDlg::OnBnClickedButton1()
{
  // TODO: 在此添加控件通知处理程序代码
  SetTimer(1,1000,TimerProc); //每间隔1s会调用一次TimerProc函数
  SetTimer(2,2000,TimerProc);
}

添加Button2按钮,关闭定时器

void CMFCApplication7Dlg::OnBnClickedButton2()
{
  // TODO: 在此添加控件通知处理程序代码
  KillTimer(1);
  KillTimer(2);
}

 

转载于:https://www.cnblogs.com/wuzhiting/p/5451401.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值