当前位置: 首页 > 编程笔记 >

C++控制台用定时器实例代码

常温文
2023-03-14
本文向大家介绍C++控制台用定时器实例代码,包括了C++控制台用定时器实例代码的使用技巧和注意事项,需要的朋友参考一下

本文研究的主要是C++控制台用定时器的相关实例,具体如下。

Timer在MFC程序中的使用

在MFC中有一个很好用的定时器函数。

  • 使用SetTimer()进行设置定时器
  • 使用KillTimer()关闭定时器
  • 在OnTimer()函数中,响应WM_TIMER这个消息,也就是定时器的处理函数。

源代码

#define TIMER_UDP_QFX 3//定时器的ID
int Period = 1000;//1000ms的定时器
//设置一个定时器
SetTimer(TIMER_UDP_QFX, Period, NULL);

//在定时器处理函数中设置自己的处理代码
void CFlightMissionPage::OnTimer(UINT_PTR nIDEvent)
{
  //UPD 更新界面
  if (TIMER_UDP_QFX == nIDEvent)
  {//如果定时器ID是 TIMER_UDP_QFX 时,进行处理
   //······
   //处理代码
   //······
  }
}
//不需要定时器时,关闭定时器
KillTimer(TIMER_UDP_QFX);

Timer在控制台程序中的使用

在对实时指标不是非常苛刻时,这个功能可以帮助我们完成很多功能。那么问题来了,这个可以用在一般控制台程序中吗?答案当然是肯定的。

需要用的函数

UINT_PTR SetTimer( HWND hWnd,       // handle to window
 UINT_PTR nIDEvent,   // timer identifier
 UINT uElapse,      // time-out value
 TIMERPROC lpTimerFunc  // timer procedure
 );

VOID CALLBACK TimerProc(
 HWND hwnd,     // handle to window
 UINT uMsg,     // WM_TIMER message
 UINT_PTR idEvent, // timer identifier
 DWORD dwTime    // current system time
);

源代码

#include <Windows.h>

//控制台消息响应
void CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime)
{
  if(1 == idEvent)
  {//如果是定时器1
    ::MessageBeep(0);//Beep叫
  }

}

int main()
{

  int TimerID = 1;//Timer的ID是1
  int peried = 1000;//Timer的间隔是 1000ms

  //设置Timer  
  ::SetTimer(NULL, TimerID, peried, &TimerProc);

  ::MSG msg;
  while(::GetMessage(&msg, NULL, 0, 0))
  {
    ::DispatchMessage(&msg);
  }
}

总结

以上就是本文关于C++控制台用定时器实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

 类似资料:
  • 本文向大家介绍C#实现的Win32控制台线程计时器功能示例,包括了C#实现的Win32控制台线程计时器功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现的Win32控制台线程计时器功能。分享给大家供大家参考,具体如下: 在C#中提供了三种类型的计时器: 1、基于 Windows 的标准计时器(System.Windows.Forms.Timer) 2、基于服务器的计时器(Sy

  • 本文向大家介绍Java获取时间打印到控制台代码实例,包括了Java获取时间打印到控制台代码实例的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Java获取时间打印到控制台代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 面试时有一道面试题:要求获取当时时间,并像电子手表那样打印到控制台。 打印出来的样式: 以上就是本文的全部内容

  • URL解析规则 内置路由支持无限层级的路由,即Controller可以无限嵌套目录,如: http://127.0.0.1:9501/api/auth/login 执行的方法为:AppControllerApiAuth::login() http://127.0.0.1:9501/a/b/c/d/f 如f为控制器名,执行的方法为:AppControllerABCDF::index() 如F为方法名

  • 本文向大家介绍C#中timer定时器用法实例,包括了C#中timer定时器用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#中timer定时器用法。分享给大家供大家参考。具体如下: 下面的代码通过Timer定时器每隔1000毫秒(1秒)触发一次事件 希望本文所述对大家的C#程序设计有所帮助。

  • 本文向大家介绍C#控制台程序中处理2个关闭事件的代码实例,包括了C#控制台程序中处理2个关闭事件的代码实例的使用技巧和注意事项,需要的朋友参考一下 应用场景 我们开发的控制台应用,在运行阶段很有可能被用户Ctrl+C终止或是被用户直接关闭。如果我们不希望用户通过Ctrl+C终止我们的程序,就需要对Ctrl+C或关闭事件作处理。 处理方法 在.net平台下Console类有个CancelKeyPre