1.正计时:
1.1头部:
#define N_TIME_SEC 1000 //一秒时间间隔
#define N_TIME_SHOW 200 //0.2s刷新显示
#define N_TIMER_SEC 1
#define N_TIMER_SHOW 2
1.2初始化函数:
n_hour = 0;
n_minute = 0;
n_second = 0;
s_hour = "00";
s_minute = "00";
s_second = "00";
UpdateData(FALSE);
1.3OnTimer函数中:
switch (nIDEvent)
{
case 1:
{
if (b_review == FALSE)
{
n_second++;
if (n_second == 60)
{
n_second = 0;
n_minute++;
}
if (n_minute == 60)
{
n_minute = 0;
n_hour++;
}
if (n_hour == 1)
n_hour = 0;
if (n_minute == 5)
b_review = TRUE;
}
else if (b_review)
{
n_hour = 0;
n_minute = 0;
n_second = 0;
s_hour.Format("%s", "Re");
s_minute.Format("%s", "vi");
s_second.Format("%s", "ew");
}
}
case 2:
{
if (b_review == FALSE)
{
int h1, h2, m1, m2, s1, s2;
h1 = n_hour / 10;
h2 = n_hour % 10;
m1 = n_minute / 10;
m2 = n_minute % 10;
s1 = n_second / 10;
s2 = n_second % 10;
s_hour.Format("%d%d", h1, h2);
s_minute.Format("%d%d", m1, m2);
s_second.Format("%d%d", s1, s2);
}
else if (b_review)
{
n_hour = 0;
n_minute = 0;
n_second = 0;
s_hour.Format("%s", "Re");
s_minute.Format("%s", "vi");
s_second.Format("%s", "ew");
}
UpdateData(FALSE);
}
default:
break;
}
2.倒计时:
OnTimer函数中:
switch (nIDEvent)
{
if (s1>0)
{
s1--;
s_edit1.Format(_T("%02d:"%02d:"%02d"),h1,m1,s1);
UpdateData(false);
break;
}
else if (m1>0)
{
s1=59;
m1--;
s_edit1.Format(_T("%02d:"%02d:"%02d"),h1,m1,s1);
UpdateData(false);
break;
}
else if (h1>0)
{
m1=59;
s1=59;
h1--;
s_edit1.Format(_T("%02d:"%02d:"%02d"),h1,m1,s1);
UpdateData(false);
break;
}
else
{
KillTimer(1);
AfxMessageBox(_T(""));
GetDlgItem(IDC_BUTTON3)->EnableWindow(true);
break;
}
break;
}