关于C++里面,SetTimer问题,回调函数用TimerProc还是OnTime?

 我来答
匿名用户
2013-08-05
展开全部
问题1:
两种方法都可以,如果给SetTimer的最后一个参数传入NULL,需要添加WM_TIMER消息映射,让VC自动生成OnTimer函数;如果传入一个回调函数地址,系统就会调用你写的回调函数。除了写法略有不同,二者几乎没啥区别的。如果你要设置多个计时器,如果使用OnTimer函数,需要在其内部区分计时器ID值;如果使用回调函数,可以为每个定时器传入不同的回调函数,这就它们的区别。
问题2:
如果使用OnTimer函数,必须在窗口类内部添加WM_TIMER消息映射,并在窗口类内部实现OnTimer进行消息响应。如果使用回调函数,这个函数可以是全局的。
回调函数的声明可以是这样:
voidCALLBACKMyTimerProc(HWNDhWnd,UINTnMsg,UINTnIDEvent,DWORDdwTime)
参数1是设置定时器的窗口句柄,参数2是消息类型,也就是WM_TIMER,参数3是定时器ID,参数4是时间延迟。你的程序没有创建窗口,不能使用定时器,定时器是依赖于窗口消息的,你必须指定一个处理WM_TIMER消息的窗口。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-05
展开全部
如果SetTimer中的句柄设置为空则需要响应OnTimer函数,如果不为空,可以写一个TimerProc回调函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蒙清竹仙衣
2020-06-06 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:31%
帮助的人:996万
展开全部
settimer的最后一个参数不就是你的回调函数名吗。。。。当然你用缺省的也没啥不可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式