MFC中的定时器用法

如何使用SetTimer MFC   Timer事件,即定时器事件,是在游戏编程中,经常使用的一个事件。借助它可以产生定时执行动作的效果。这篇文章,就和大家一起探讨一下如何使用SetTimer()函数。           1、SetTimer定义在那里?            SetTimer表示的是定义个定时器。根据定义指定的窗口,在指定的窗口(CWnd)中实现OnTimer事件,这样,就可以相应事件了。SetTi 阅读详情

在MFC中和定时器相关的有三个函数:
UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)( HWND, UINT, UINT, DWORD) );

第一个参数为对应时器的代号。在一个程序中,可能有多个SetTimer,在Ontime响应时,可以根据第一个参数来确定是哪一个记时器所引起的事件。
第二个参数是设定的毫秒数
第三个参数为一个回调函数的指针,用NULL的话,系统会把SetTimer产生的消息加入消息队列中。我们大多数时候不在这里实现,而是在OnTimer中,即我们经常把这个参数设为NULL。
afx_msg void OnTimer( UINT nIDEvent );
BOOL KillTimer( int nIDEvent );  =========================================================================


函数功能:
SetTimer用来定义一个定时器的属性,如改定时器的ID,刷新时间,处理函数。


OnTimer用来响应系统定义的WM_TIMER消息,在这里可以用switch语句实现对多定时器中的各个定时器分别响应。在这里做当对应计时器到点时你想干的事情,你有多大能耐就在这里使多大能耐!


KillTimer用来结束一个定时器。

 

下面我们用一个例子来说明定时器的使用: 这个例子用来实现一个简单的功能,就是在一个单文档程序中,每间隔5秒弹出一个消息框提示“定时器1”,每隔5秒弹出一个消息框提示“定时器2”。
  

建立单文档程序略,一路Next。

=========================================================================

(1)在CMainFrame的OnCreate函数中定义两个定时器的属性。
SetTimer(1,5000,0);
SetTimer(2,5000,0);

(2) CMainFrame中对WM_TIMER进行响应。

void CMainFrame::OnTimer(UINT nIDEvent)
{
    // TODO: Add your message handler code here and/or call default
    switch(nIDEvent) {
    case TIMEID1:
        {   
            AfxMessageBox("定时器1!");
            break;
        }
case TIMEID2:
        {   
            AfxMessageBox("定时器2!");
            break;
        }
    default:
        ;
    }
   
    CFrameWnd::OnTimer(nIDEvent);
}

(3)在CMainFrame的析构函数中添加
KillTimer(IDTIMER1);
KillTimer(IDTIMER2);

 

Windows下定时器SetTimer以及KillTimer用法 阅读详情

相关推荐

MFC定时器Timer的使用

mfc定时器功能,可以让程序周期性的执行一些功能

m0_60352504的博客 1万+

MFC定时器SetTimer函数用法总结

CWnd类的SetTimer成员函数只能在CWnd类或其派生类中调用,而API函数SetTimer则没有这个限制,这是一个很重要的区别。 1、启动定时器。 启动定时器就需要使用CWnd类的成员函数SetTimer。CWnd::SetTimer的原型如下: 参数nIDEvent指定一个非零的定时器ID; 参数nElapse指定间隔时间,单位为毫秒; 参数lp

星如雨落 5万+

MFC---定时器的使用【定时器并行】

定时器的使用非常广泛: 体育课上,计算田径跑步用时; 军事上,定时炸弹,定时雷管。 生活上,定时器控制开关或工作时间。 下面先说下MFC定时器的具体使用方法,然后再演示一个定时器的具体案例。 一: 定时器的使用: 1.定时器的开启: 使用CWnd类的成员函数SetTimer(): SetTimer ( UINT nIDEvent, //定时器ID,用来确定消息是那个定时器发送的...

随心漂流的博客 2208

MFC中如何使用定时器(SetTimer

定时器是指在软件运行的过程中,在特定的而时间段之后动作。使其产生消息或者回调函数工作,从而实现有一定的功能。 定时器有两种工作方式,一种是通过发送消息,使其WM_TIMER消息动作。另一种是通过回调函数来动作。 主要使用的函数: SetTimer()函数是用来创建定时器KillTimer()函数是用来结束定时器的 以下是一个例程: 通过发送消息 1、首先创建定时器,在此例子中定时器是在按钮的点击事件中创建的 void CSetTimerDlg::OnBnClickedButton1() { /

qq_43812868的博客 1万+

MFC定时器OnTimer()的使用

MFC中我们可能需要定时读写数据或是更新状态,这时候就需要用到定时器,其实现函数是OnTimer(),下面对其用法做一些简单的介绍(基于VS2015) 1、在工程的类视图中点击需要使用定时器的对话框类,在属性窗口中选择消息,在下面的消息函数中选中WM_TIMER,后面下拉框选择添加OnTimer函数,如下图所示: 添加完毕后会在CxxxDlg.cpp中自动添加OnTimer(UINT_PTR nIDEvent),如下图 之后就可以在OnTimer函数中进行相应的处理了。OnTimer的.

the_sea1的博客 1万+

关于MFC中的定时器用法

初始化的时候SetTimer(1, 500, NULL);//其中第一个参数1是自定义的标识,用于区分各个定时器,第二个参数500是使定时器每500ms触发一次,第三个参数是回调函数,设置为NULL时,使用默认回调函数即OnTimer(); 在类中添加WM_TIMER的消息映射即可自动添加OnTimer()函数。 转载于:https://www.cnblogs.com/cybersword/ar...

weixin_30501857的博客 84

界面——C++_MFC从入门到放弃(一)

目录 MFC——窗口静态显示 MFC——定时器:窗口动态显示 MFC——【X】退出菜单缓存清除 MFC——警告弹窗MessageBox MFC——相机单帧采集 MFC——问题:non-unicode character set is deprdeprecated MFC——多线程: MFC——纯ALT读取图(静态和动态) MFC——字符、字符串、数值等之间的转换 MFC——改变...

DONG_LIN_2019的博客 3440

MFC TIMER用法

一SetTimer函数的用法 1)函数原型及变形 SetTimer这个API函数的原型: UINT_PTR SetTimer( HWND hWnd, //窗口句柄 UINT_PTR nIDEvent, //定时器ID,多个定时器时,可以通过该ID判断是哪个定时器 UINT uElapse, //时间间隔,单位为毫秒 TIMERPROC lpTimerFunc //回调函数 ...

javababy1 100

MFC中使用回调函数实现MessageBox自动关闭的示例

在编程中,回调函数是一种被作为参数传递给其他函数的函数。这意味着,你可以将一个函数作为参数传递给另一个函数,后者在执行过程中,可以根据需要调用传递给它的这个函数。这在某些情况下非常有用,比如,你想要编写一个通用的排序函数,但又希望用户能够指定用于比较两个元素大小的函数。在这种情况下,你可以将比较函数作为参数传递给排序函数。回调函数在很多编程语言中都得到了广泛的应用,其中最为常见的就是C和C++语言。在这些语言中,回调函数的实现通常依赖于函数指针。

weixin_33531560的博客 1210

MFC中遇到的一些问题

1 WM_TIMER消息响应中的一些重要的知识点 Timer使用的是时间中断响应计时,windows的时间中断每1/18秒触发一次,所以Timer最低精度约在55ms,低于这个时间则精度不够。 如果要启动多个定时器就多次调用SetTimer成员函数。另外,在不同的CWnd中可以有ID相同的定时器,并不冲突。(百度百科:[TIMER][http://baike.baidu.com/link?url=G

xuanyuanlei1020的专栏 710

MFC模块的学习(专有函数的使用)

/获取名为"m_cbo_sensorconfig0"的下拉列表框的当前选中项的文本内容,并将其存储在名为"m_strINIFile"的字符串变量中。调用SetTimer函数,设置一个定时器定时器ID为TIMEEVENT_FPS,定时器间隔为100毫秒,回调函数为NULL。//获取BitmapConnect对象的安全句柄,并将其转换为HBITMAP类型,并将其赋值给bBmpConnect变量。//第一个参数是设备ID,第二个参数是控制命令。在.cpp文件里实现调用。在.cpp文件里实现调用。

lh567890的博客 363

MFC中OnTimer定时器用法

一、     单个定时器用法 定时器工作主要流程:设置定时器SetTimer,时间到后调用OnTimer函数,关闭定时器KillTimer。可以在程序初始化用SetTimer函数弄成多个线程类似,并行进行多个函数功能。 1.1 SetTimer(H,nID,elipse,NULL) 函数作用:开始nID号定时器 H:要定时的事件句柄,在MFC中不需要该参数,因为MFC封装在CWnd类中

净无邪博客 1万+

MFC定时器用法

前段时间因为做图像处理的综合实验,需要用到MFC编写调试程序,要做到能够实时采集图像然后立刻处理图像,所以用到了MFC中的定时器。关于定时器MFC的CWnd类提供的成员函数SetTimer实现定时器功能,而Windows API函数SetTimer来实现。两者使用方法实际上很类似,但也有不同。 CWnd类的SetTimer成员函数只能在CWnd类或其派生类中调用,而API函数SetTimer则没有...

qq_43987474的博客 3286

MFC定时器的使用

巧妙地使用定时器能达到意想不到的效果,写界面的时候能实现渐变,也能帮助多线程控制等 我们知道,在VC的MFC中,已经为我们封装好了很多全面和强大的函数集,所以在MFC编程时,巧妙地调用MFC函数库可以为我们省去很多麻烦。其中定时器也可以在MFC程序中很好地利用。 在MFC中和定时器相关的有三个函数: 1.设置定时器(定义一个定时器的属性):         SetTimer( UINT n

xinm1001的博客 1万+

MFC定时器的使用

MFC 一.简介 这篇说一下在MFC开发过程当中定时器的使用,我们以在界面上显示系统的时间,让定时器工作,每隔1s时间更新一次 二.

weixin_45631738的博客 2851

MFC 定时器用法 SetTimerKillTimer

什么时候我们需要用到SetTimer函数呢?当你需要每个一段时间执行一件事的的时候就需要使用SetTimer函数了。使用定时器的方法比较简单,通常告诉WINDOWS一个时间间隔,然后WINDOWS以此时间间隔周期性触发程序。通常有两种方法来实现:发送WM_TIMER消息和调用应用程序定义的回调函数。 1.1用WM_TIMER来设置定时器 先请看SetTimer这个API函数的原型 UI...

u011555996的博客 2474
上一篇: 关于error C2871: ''std'' : does not exist or is not a namespace处理
下一篇: Qt写入文件失败,啊啊啊,原来是这个错误!
MichealTX
博客等级 码龄17年 126粉丝 73原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值