MFC - Temporizador

?>

UN timeres un objeto no espacial que utiliza lapsos de tiempo recurrentes de una computadora o de su aplicación. Para que funcione, cada lapso de tiempo, el control envía un mensaje al sistema operativo. A diferencia de la mayoría de los otros controles, el temporizador MFC no tiene un botón para representarlo ni una clase. Para crear un temporizador, simplemente llame al método CWnd :: SetTimer (). Esta llamada de función crea un temporizador para su aplicación. Al igual que los otros controles, un temporizador usa un identificador.

Creemos una nueva aplicación basada en cuadros de diálogo MFC.

Step 1 - Elimina el título y establece su ID en IDC_STATIC_TXT

Step 2 - Agregue la variable de valor para el control de texto.

Step 3 - Vaya a la vista de clases en solución.

Step 4 - Haga clic en la clase CMFCTimeDlg.

Step 5 - En la ventana Propiedades, haga clic en el botón Mensajes.

Step 6- Haga clic en el campo WM_TIMER y haga clic en la flecha de su cuadro combinado. Seleccione OnTimer e implementar el 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 - Cuando se compile y ejecute el código anterior, verá el siguiente resultado.