【解決方法】Visual Studio MFC C++ のタイマー

プログラミングQA


10 秒ごとに関数を呼び出すタイマーを使用する必要があります。goole で検索しましたが、正しい例が見つかりません。いくつかの例はありますか?

私が試したこと:

インターネットで検索しましたが明確な例はありません

解決策 1

を使用する必要があります。 SetTimer 関数 (winuser.h) – Win32 アプリ | Microsoft Learn[^] および関連するメッセージ。

解決策 2

SetTimer を呼び出した場合は、タイマー イベントを処理する OnTimer オーバーライドをウィンドウ クラスに実装する必要があります。 これがそのプロトタイプです:

C++
afx_msg void   OnTimer( UINT_PTR id );

次の行もメッセージ マップに追加する必要があります。

C++
ON_WM_TIMER()

一度に複数のタイマーがアクティブになる可能性があるため、すべてのタイマーではなく、ハンドラーで関心のあるイベントのみを処理する必要があることに注意してください。 つまり、ハンドラーは次のようになります。

C++
void MyWindowClass::OnTimer( UINT_PTR timertId )
{
   if( timerId == MyTimerId )
   {
      // handle timer event
   }
   __super::OnTimer( eventId );  // let parent class have its shot at it
}

コメント

タイトルとURLをコピーしました