【问题标题】:How to create timer in WinApi (C++)?如何在 WinApi (C++) 中创建计时器?
【发布时间】:2010-01-24 20:18:38
【问题描述】:

如何在 WinApi (C++) 中创建计时器?

【问题讨论】:

    标签: c++ winapi timer


    【解决方案1】:

    调用setTimer() 函数。假设我打电话给

    SetTimer(hWnd,POST_CBIT_TIMER,500,NULL);
    

    回调函数是

    UINT nIdEvent ;//global member variable
    
    case WM_TIMER:
    
    if(nIDEvent == POST_CBIT_TIMER)
    {
    
    KillTimer(hParent,POST_CBIT_TIMER);
    
    
    }
    break;
    

    【讨论】:

      【解决方案2】:

      调用SetTimer 函数。这允许您指定回调函数,或让 Windows 向您发送 WM_TIMER 消息。

      【讨论】:

      • 根据 nobugz - 这在控制台应用程序或非 gui 线程中不起作用。线程必须泵送消息以生成 SetTimer 回调。
      • SetTimer 不是高分辨率(即
      【解决方案3】:

      CreateTimerQueueTimer 的一个很好的例子:Here

      另一个是HERE

      【讨论】:

        【解决方案4】:

        如果您编写 GUI 代码,您不可能不知道这一点。这使得您很可能想要使用 CreateTimerQueueTimer()。

        【讨论】:

        【解决方案5】:

        SetTimer。需要一个窗口句柄,如果您不发送消息,则不会传递计时器。

        【讨论】:

          猜你喜欢
          • 2017-10-30
          • 1970-01-01
          • 2015-01-10
          • 2019-01-29
          • 2014-06-16
          • 2016-06-19
          • 1970-01-01
          • 2023-04-09
          • 2023-01-16
          相关资源
          最近更新 更多