vc c语言定时器,VC++定时器的使用(Windows SDK方式)

本文介绍了如何在VC++中使用Windows SDK的方式设置和使用定时器。通过SetTimer函数设置定时器,并提供了两种处理定时器触发的方法:一是通过WM_TIMER消息处理,二是使用自定义的TIMERPROC回调函数。示例代码展示了在窗口中创建一个随机移动的方块,以此演示定时器在窗口绘制任务中的应用。
摘要由CSDN通过智能技术生成

定时器在实际编程中使用频率比较高,例如一些需要间隔一定时间自动执行的任务,如果任务执行对时间精度要求不是太苛求,使用简单的定时器就是一个较好的选择。当然,由于定时器在系统的优先级较低,有时在执行具体任务时可能会遇到一些意想不到的问题。如果这样的话,可以考虑直接使用线程或调用GetTickCount函数自己处理。对于一些简单的游戏编程,定时器完全可以胜任。本文以VC6.0为环境说明定时器的使用方法。

在Windows编程中,可以使用SetTimer函数设置并启动定时器。该函数在SDK的API定义中有四个参数,原型定义如下:

UINT SetTimer( HWND hWnd,

UINT nIDEvent,

UINT uElapse,

TIMERPROC lpTimerFunc );

参数含义:

nhWnd

与定时器关联的窗口句柄。该窗口必须被调用的线程所拥有。如果该参数设为NULL,则意味着定时器没有需要关联的窗口,那么第二个参数nIDEvent就会被忽略;

nnIDEvent

指定一个非0的标识。如果hWnd参数为NULL,该参数被忽略;

nuElapse

定时器间隔的时间,以毫秒为单位;

nlpTimerFunc

指定的间隔时间自动执行的回调函数的指针;如果该参数为NULL,系统则自动向英勇程序队列发送WM_TIMER消息;如果不为NULL,则会自动执行所指定的回调函数。该回调函数的定义如下:

voidCALLBACK TimerProc(HWND hwnd,

UINTuMsg,

UINTidEvent,

DWORDdwTime );

回调函数的参数含义:

lhwnd:要与定时器关联的窗口句柄;

luMsg:指定WM_TIMER消息;

lidEvent:定时器的标识;

ldwTime:指定自系统启动后的已经过去的毫秒数,该值由GetTickCount函数获得。

从以上SetTimer函数的定义可以看出,使用定时器时,有两个地方可以用来编写定时器要执行的任务代码:(1)WM _TIMER消息中;(2)自定义的TIMERPROC类型的任务函数。

由于采用SDK方式编成,如果要在Windows窗口中进行绘制,首先必须先生成一个空白窗口(没有菜单、工具栏或状态栏),为此需要创建一个Win32 Application类型的空工程,然后为工程增加一个源文件(.cpp文件),将下面创建空白窗口的代码复制到源文件中:

#include

//声明回调函数

LONG CALLBACK MyWndProc(HWND, UINT, WPARAM, LPARAM);

//=============================&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
01-22 2897

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值