MFC - 计时器



?>

计时器是非空间对象,使用计算机或应用程序中的重复时间间隔。为了工作,控件在每个周期内都向操作系统发送一条消息。与大多数控件不同的是,MFC 计时器没有按钮来表示它,也没有类。要创建一个计时器,你只需调用 CWnd::SetTimer() 方法。此函数调用会为你的应用程序创建一个计时器。与其他控件一样,计时器使用标识符。

让我们创建一个新的基于 MFC 对话框的应用程序。

步骤 1 − 删除标题并将其 ID 设置为 IDC_STATIC_TXT

步骤 2 − 为文本控件添加变量值。

Timer

步骤 3 − 在解决方案中转到类视图。

步骤 4 − 点击 CMFCTimeDlg 类。

步骤 5 − 在属性窗口中,点击消息按钮。

Timer

步骤 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 − 编译并执行上述代码时,你将看到以下输出。

Timer
mfc_windows_controls.htm
广告