MFC - Timer

?>

UMA timeré um objeto não espacial que usa lapsos de tempo recorrentes de um computador ou de seu aplicativo. Para funcionar, a cada lapso de tempo, o controle envia uma mensagem ao sistema operacional. Ao contrário da maioria dos outros controles, o temporizador MFC não tem um botão para representá-lo, nem uma classe. Para criar um cronômetro, basta chamar o método CWnd :: SetTimer (). Essa chamada de função cria um cronômetro para seu aplicativo. Como os outros controles, um cronômetro usa um identificador.

Vamos criar um novo aplicativo baseado em diálogo MFC.

Step 1 - Remova a legenda e defina seu ID para IDC_STATIC_TXT

Step 2 - Adicione a variável de valor para controle de texto.

Step 3 - Vá para a visão da classe na solução.

Step 4 - Clique na classe CMFCTimeDlg.

Step 5 - Na janela Propriedades, clique no botão Mensagens.

Step 6- Clique no campo WM_TIMER e clique na seta de sua caixa de combinação. Selecione OnTimer e implemente o evento.

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); 
}

Step 7 - Quando o código acima for compilado e executado, você verá a seguinte saída.