对于WINCE下有窗口的程序,可以通过简单的使用API SetTimer来创建一个定时器。当定时器超时时窗口会收到一个WM_TIMER消息,我们在WM_TIMER消息中去做定时器超时处理即可。而对于无窗口的程序,因为本身没有消息循环,所以无法收到WM_TIMER消息,定时器也就无法正常工作了。
那么无窗口程序如何通过SetTimer来定时呢?其实我们只需在无窗口程序里的主线程中加一个消息循环,来处理WM_TIMER即可,参考代码如下:
但对于无窗口的程序这样还是比较麻烦的,使用定时器的时候还得添加消息循环的代码,其实微软还提供了一个API timeSetEvent来创建定时器,已实现更精确的定时,参考代码如下:
最后别忘了调用timeKillEvent关闭定时器。