我想知道在系统时间改变(自动改变,非人工手动改变)一秒或者是一分钟的时候有没有发出什么消息,比如说从13:23变到13:24的时候有没有发出什么消息。
我知道在手动改变时间时会发出WM_TIMECHANGE,设定时器会发出WM_TIMER,不过我现在就想在系统时间每改变一分钟的时候处理一些事情。

解决方案 »

  1.   

    请认真看我的问题好么?
    我说了是系统时间的自动改变,即从22:07变到22:08的瞬间发出的消息
    假设你定时器的起始时间是22:07:32那么发出WM_TIMER消息的时间是在22:08:32而不是22:08:00.
    明白我的问题了么?
      

  2.   

    系统自己也要使用定时器,定时器也是使用事件消息机制
    如果设定的是1000ms,那么肯定是每隔1000ms会发送一个 WM_TIMER消息。记住:Windows程序都是基于消息,事件驱动!
      

  3.   

    你这个需要每隔一段时间 手动检查当前时间的。QueryPerformanceCounter
    QueryPerformanceFrequency 这个准确到微秒。
    你也可以新开一个线程,每隔一秒向主线程发消息。ontimer也是可以的,你设个100MS的计时器,然后在处理函数里读取当前时间就可以了。