Mfc-timer

提供:Dev Guides
移動先:案内検索

MFC-タイマー

*タイマー*は、コンピューターまたはアプリケーションからの繰り返しの時間経過を使用する非空間オブジェクトです。 動作するために、期間の経過ごとに、コントロールはオペレーティングシステムにメッセージを送信します。 他のほとんどのコントロールとは異なり、MFCタイマーには、それを表すボタンもクラスもありません。 タイマーを作成するには、CWnd
SetTimer()メソッドを呼び出すだけです。 この関数呼び出しは、アプリケーションのタイマーを作成します。 他のコントロールと同様に、タイマーは識別子を使用します。

新しいMFCダイアログベースのアプリケーションを作成しましょう。

  • ステップ1 *-キャプションを削除し、そのIDをIDC_STATIC_TXTに設定します
  • ステップ2 *-テキストコントロールの値変数を追加します。

タイマー

  • ステップ3 *-ソリューションのクラスビューに移動します。
  • ステップ4 *-CMFCTimeDlgクラスをクリックします。
  • ステップ5 *-[プロパティ]ウィンドウで、[メッセージ]ボタンをクリックします。

タイマー

  • ステップ6 *-WM_TIMERフィールドをクリックし、そのコンボボックスの矢印をクリックします。 OnTimerを選択して、イベントを実装します。
void CMFCTimerDlg::OnTimer(UINT_PTR nIDEvent) {
  //TODO: Add your message handler code here and/or call default
   CTime CurrentTime = CTime::GetCurrentTime();

   int iHours = CurrentTime.GetHour();
   int iMinutes = CurrentTime.GetMinute();
   int iSeconds = CurrentTime.GetSecond();
   CString strHours, strMinutes, strSeconds;

   if (iHours < 10)
      strHours.Format(_T("0%d"), iHours);
   else
      strHours.Format(_T("%d"), iHours);

   if (iMinutes < 10)
      strMinutes.Format(_T("0%d"), iMinutes);
   else
      strMinutes.Format(_T("%d"), iMinutes);

   if (iSeconds < 10)
      strSeconds.Format(_T("0%d"), iSeconds);
   else
      strSeconds.Format(_T("%d"), iSeconds);

   m_strTimer.Format(_T("%s:%s:%s"), strHours, strMinutes, strSeconds);

   UpdateData(FALSE);
   CDialogEx::OnTimer(nIDEvent);
}
  • ステップ7 *-上記のコードをコンパイルして実行すると、次の出力が表示されます。

タイマー