剛學MFC,想做一個倒計時器,下面為部分代碼,ToSecond和ToTimeFormat
是秒和時間字符串的轉換。大神們知道問題出在哪裡嗎?
void CTimerDlg::OnBnClickedBegin()
{
// TODO: 在此添加控件通知處理程序代碼
CString szTimeFormat;
GetDlgItemText(IDC_IN, szTimeFormat);
SetDlgItemText(IDC_OUT, szTimeFormat);
iSecond = ToSecond(szTimeFormat);
SetTimer(ID_TIMER, 1000, NULL);
}
void CTimerDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息處理程序代碼和/或調用默認值
CDialogEx::OnTimer(nIDEvent);
CString szTimeFormat;
if (iSecond == -1)
{
return;
}
while (iSecond >= 0)
{
szTimeFormat = ToTimeFormat(iSecond);
SetDlgItemText(IDC_OUT, szTimeFormat);
}
iSecond--;
}
void CTimerDlg::OnBnClickedStop()
{
// TODO: 在此添加控件通知處理程序代碼
KillTimer(ID_TIMER);
}
代碼不多,慢慢調。
首先需要定位代碼在哪裡出問題了。