【问题标题】:How to delay the process using ontimer function without using sleep()?如何在不使用 sleep() 的情况下使用 ontimer 函数延迟进程?
【发布时间】:2016-01-27 06:47:45
【问题描述】:

我必须在我的应用程序窗口中显示 3 个图像,显示每个图像时应该有 10 秒的延迟(即每个图像应该停留 10 秒)。 我如何在不使用 sleep() 的情况下使用 ontimer() 来做到这一点。

【问题讨论】:

标签: c++ windows visual-studio-2010 mfc


【解决方案1】:

使用 ON_WM_TIMER()

SetTimer( TIMER_ID, 10000, NULL);

在这里 TIMER_ID 您可以传递任何唯一的 id。
10000 毫秒 = 10 秒

void CYOURDlg::OnTimer(UINT_PTR nIDEvent)
{
    if(nIDEvent == TIMER_ID) // check timer Id
    {

        // Write your code to show exe

    }
    CDialog::OnTimer(nIDEvent);
}

这将每 10 秒调用一次,因为我们给了 10 秒的延迟。

当您不想运行计时器时,可以拨打KillTimer(TIMER_ID)

【讨论】:

  • CYOURDlg::OnTimer 末尾的链回调用应该是 OnTimer 的基类版本(可能是 CDialog::OnTimer),而不是递归到自身(你的堆栈不够大)
猜你喜欢
  • 1970-01-01
  • 2021-12-21
  • 1970-01-01
  • 2012-11-16
  • 2012-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多