GetLastInputInfo()给出适当的时间

时间:2013-11-25 11:51:04

标签: c++ mfc

我已经在OnTimer()中编写了一个代码,每100ms调用一次,并给我时间应用程序在这里保持空闲状态是代码

void MyAppView::OnTimer(UINT_PTR nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if(nIDEvent == 3)
{
    // Get the last input event info.
    LASTINPUTINFO li;
    li.cbSize = sizeof(LASTINPUTINFO);
    ::GetLastInputInfo(&li);
    // Calculate the time elapsed in seconds.
    DWORD te = ::GetTickCount();
    int elapsed = (te - li.dwTime) / 100;
    // Test against a preset timeout period in
    // seconds.
    if(5000 < elapsed)
    {
        // Call a function or set an application flag
        // that can be acted on outside this function.
        AfxMessageBox(_T("This session has timeout"));
    }
  }
}

我不知道这段代码出了什么问题,但我每次都过了= 0。 请让我知道我哪里出错了。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我想你想要一个 float 计算,而不是整数...

float elapsed = (te - li.dwTime) / 100.0;