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

(0)

相关推荐

  • vc6.0中c语言控制台程序中的定时技术(定时器)

    打开main.c编译运行,注意,打开main.c之后一定要将win32timer.c也加进工程中一起编译,下面有图.在开发单片机.ARM以及Linux系统的程序时,因为硬件定时中断的存在我们很方便构造出定时ISR,然而在VC6.0中,我们如何写一个定时程序呢?其实,就是timeSetEvent()这个函数的调用.这个函数的解释见MSDN.详细原理,请看我代码中的注释,我写得很详细了. main.c 复制代码 代码如下: //======================// main.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, Per

  • Python定时器实例代码

    在实际应用中,我们经常需要使用定时器去触发一些事件.Python中通过线程实现定时器timer,其使用非常简单.看示例: import threading def fun_timer(): print('Hello Timer!') timer = threading.Timer(1, fun_timer) timer.start() 输出结果: Hello Timer! Process finished with exit code 0 注意,只输出了一次,程序就结束了,显然不是我们想要的结果

  • JAVA基础之控制台输入输出的实例代码

    ---恢复内容开始--- 输入需要用scanner机制 代码: 启用scanner机制 Scanner input = new Scanner(System.in); //String x= input.next(); //String x = input.nextLine(); //int num = input.nextInt(); //double num = input.nextDouble(); 输出用需要用System的out方法 代码: System.out.println();

  • Java 定时器(Timer)及线程池里使用定时器实例代码

    java Timer定时器 简单实例代码: public class Test { public static void main(String[] args) { // Timer定时器 Timer mTimer = new Timer(); MyTack myTack = new MyTack(); mTimer.schedule(myTack, 2000, 3000);//第一个参数是需要执行的任务 第二个参数是延迟多少时间最开始执行,第三个参数是执行完后多少时间后进行再次执行是一个周期性

  • c# 在windows服务中 使用定时器实例代码

    由于最近做自动执行的程序,开始做windows服务程序, 在windows服务中如何使用定时器的时候一直失效, 以前是直接拖入timer控件,但是不能直接运行,后来在网上找了一段程序,好使了. 复制代码 代码如下: //开始事件        protected override void OnStart(string[] args)        {             //定时事件            MyTimer();         } //结束事件        protect

  • js hover 定时器(实例代码)

    复制代码 代码如下: $("#showComp tr:not('.stlisttitle')").hover(function(){        try{if($("#calendarPanel").is(":visible")) $(".playerlist").hide();else{clearTimeout(timMess);        $(".playerlist").css("to

  • C语言之实现控制台光标随意移动的实例代码

    原理引入windows.h,首先是要获得输入的东西,然后通过判断: 1.方向键:执行上下左右的移动功能 2 .回车键:执行换行的功能. 3.普通键:输入功能. 终点就是要获取到屏幕上的坐标,当按下了方向键以后,坐标值+1,或者减一,从而实现了光标的自由移动. //C语言实现控制台中光标随意移动 #include <stdio.h> #include <windows.h> #include <conio.h> HANDLE hout; //获得输入 char getIn

  • PyQt5中QTimer定时器的实例代码

    如果要在应用程序中周期性地进行某项操作,比如周期性地检测主机的CPU值,则需要用到QTimer定时器,QTimer类提供了重复的和单次的定时器.要使用定时器,需要先创建一个QTimer实例,将其timeout信号连接到相应的槽,并调用start().然后定时器会以恒定的间隔发出timeout信号,当窗口控件收到timeout信号后,它就会停止这个定时器. 一.QTimer类中的常用方法 方法 描述 start(milliseconds) 启动或重新启动定时器,时间间隔为毫秒.如果定时器已经运行,

  • 纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)

    实现效果演示: 实现代码及注释: <!DOCTYPE html> <html> <head> <title>楼层跳跃式的页面布局</title> <meta charset="utf-8"> <style type="text/css"> *{ margin: 0; padding: 0; } body, html{ height: 100%; } ul{ list-style: n

  • JavaScript+CSS相册特效实例代码

    嗯 就是这样一个例子,视频学到的一个特效,实际用处并不大,但是可以帮助理解JS语言和熟悉CSS3样式. 设计: 观察一张图片的变化,发现: 1.图片缩放(随机,并且不是同时运动) 1.从大到小 2.从小到大,透明度从1到0(在第一步运动完成后立马开始) 2.图片旋转(随机,并且不是同时运动的.需要在全部运动走完以后开始) 3. 因为每张图片是随机开始变换的,所以起始时间是不同的,这里可设置一个延迟器setTimeout,时间用random随机生成即可. 4. 中间需要用到自执行函数,因为setT

随机推荐