1. 程式人生 > >用MFC製作一個倒計時小程式

用MFC製作一個倒計時小程式

void CCdTimerDlg::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	UpdateData(TRUE);
	BOOL bIsDecreased = FALSE;  // 防止碰到類似01:00:00的情況使得分鐘被減為58而不是59

	// 倒計時程式的實現部分
	if (m_bIsBegin == TRUE)
	{
		if (atoi(m_strSeconds) == 0)
		{
			if (atoi(m_strMinutes) == 0)
			{
				if (atoi(m_strHours) == 0)
				{
					return;
				}
				m_strHours.Format("%d", atoi(m_strHours) - 1);
				m_strMinutes.Format("%d", 59);
				m_strSeconds.Format("%d", 59);
				bIsDecreased = TRUE;     // 分鐘已經減少為59
			}
			if (bIsDecreased == FALSE)
			{
				m_strMinutes.Format("%d", atoi(m_strMinutes) - 1);
				m_strSeconds.Format("%d", 59);
			}
		}
		else 
		{
			m_strSeconds.Format("%d", atoi(m_strSeconds) - 1);
		}

		// 控制顯示格式,當數值 < 10,以0作為字首
		if (atoi(m_strSeconds) < 10)
		{
			m_strSeconds.Format("0%d", atoi(m_strSeconds));
		}
		if (atoi(m_strMinutes) < 10)
		{
			m_strMinutes.Format("0%d", atoi(m_strMinutes));
		}
		if (atoi(m_strHours) < 10)
		{
			m_strHours.Format("0%d", atoi(m_strHours));
		}
	}
	
	UpdateData(FALSE);
	CDialog::OnTimer(nIDEvent);
}
程式執行如下所示: