1

Windows 7 で Visual Studio を使用して C++ でアプリケーションを作成しています。アプリケーションは、単一ページの MFC ダイアログ アプリケーションです。特定の日時になったときにメッセージ ボックスをポップアップさせたい。日付ピッカーを使用して、トリガーとして機能する指定された日付を取得し、CTime オブジェクトを使用して現在の時刻と予想時刻を保存しています。

残念ながら、どこから調べればよいかわかりません。1 分に 1 回、毎分ウィンドウに通知またはメッセージを送信するオブジェクトはありますか? そうでない場合、これを達成するために私ができる特定の方法、またはどこから探し始めるかについての提案はありますか?

編集:現在の日付と将来の日付の間に何秒あるかを計算し、(タイマーで) カウントダウンする別のスレッドを作成することは可能ですか?

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:35 ではなく、12:37 頃にトリガーされます。

これには、 CreateWaitableTimerを使用することをお勧めします。

于 2013-01-12T08:06:12.993 に答える