• SetTimer函数使用注意


    该函数的原型声明如下:

    UINT_PTR SetTimer(
      HWND      hWnd,
      UINT_PTR  nIDEvent,
      UINT      uElapse,
      TIMERPROC lpTimerFunc
    );
    
    

    第一个参数hWnd:与该定时器关联的窗口句柄。
    第二个参数nIDEvent:非0的定时器标示符。

    这两个参数的关联关系如下:

    hwnd nIDEvent
    null 如果nIDEvent与已有定时器ID无重复,忽略入参nIDEvent,返回新的定时器Id。如果有重复,则会替换旧的定时器
    非null nIDEvent与hwnd关联的IDEvent有重复,已有的IDEvent将被替换为新的定时器

    第三个参数是超时时间,单位为毫秒。
    第四个参数为回调指针,如果设置为NULL,则通过WM_TIMER消息来通知,否则通过回调指针通知。

    注意事项:

    • 如果调用者没有替换已有定时器意图,nIDEvent必须为0,并且hwnd为null
    • hwndnull时,该函数有替换重复定时器Id处理函数的动作,当前后两个定时器处理事件不一致时,容易引发潜在错误。**在使用时务必注意,nIDEvent必须设置为0.**
    • 不管hwnd为null还是非null,都要以SetTimer返回值作为定时器标识,而不是以nIDEvent入参
    • SetTimer返回0表示出错,调用GetLastError获得更多错误信息。
    • 与窗口hwnd关联的定时器ID的作用域是窗口,两个不同的窗口可以拥有相同的定时器Id.
  • 相关阅读:
    pcie dma
    Virtual Network
    hashcode与equals
    java四类八种基本数据类型
    jdk 1.7 LinkedList 源码分析
    jdk 1.7 ArrayList 源码分析
    httpclient发送xml字符串(推送)
    HttpClient使用Post和Get提交参数
    httpClient发送Json请求,结果返回Json.
    HttpClient
  • 原文地址:https://www.cnblogs.com/cherishui/p/13997135.html
Copyright © 2020-2023  润新知