1

我正在使用 Windows 7 中的 Visual Studio 在 C++ 中编写一个应用程序。该应用程序是一个单页 MFC 对话框应用程序。我想在到达某个时间和日期时弹出一个消息框。我正在使用日期选择器来获取将用作触发器的指定日期,并使用 CTime 对象来存储当前时间和预期时间。

不幸的是,我不知道从哪里开始寻找。是否有一个对象每分钟每分钟向窗口发送一次通知或消息?如果没有,有没有什么具体的方法可以让我完成这项工作,或者关于我可以从哪里开始寻找的建议?

编辑:是否可以计算当前日期和未来日期之间的秒数并创建一个单独的倒计时线程(使用计时器)?

4

2 回答 2

1

这是接收定时器事件所需实现的功能的粗略草图:

UINT_PTR timerId = NULL;

void OnTimerEvent(HWND, UINT, UINT_PTR id, DWORD)
{
    if (timerId == id)
    {
        // timer action...
    }
}

void StartTimer()
{
    // call OnTimerEvent after 1000 milliseconds
    timerId = SetTimer(NULL, NULL, 1000, &OnTimerEvent);
}

void StopTimer()
{
    KillTimer(NULL, timerId);
}
于 2013-01-12T04:41:05.967 回答
0

您可以SetTimer按照@StackedCrooked 的建议使用。但是如果系统时间改变,那将不起作用。例如,假设当前时间是 12:30,而您将其设置为 12:35,那么SetTimer您将设置为 5 分钟。但是,如果系统时间更改为 12:32,计时器将在 12:37 左右触发,而不是在 12:35 !

为此,您可能喜欢使用CreateWaitableTimer

于 2013-01-12T08:06:12.993 回答