我在这里问一个关于WM_TIMER和SetTimer的问题,但当我输入这个时:
void Timer::OnUpdateScreen()
{
TimerStillGoing=false;
m_hour=HOUR;
SetDlgItemText(IDC_HR, m_hour);
m_minute=MINUTE;
SetDlgItemText(IDC_MIN, m_minute);
m_second=SECOND;
SetDlgItemText(IDC_SEC, m_second);
TimerStillGoing=true;
}
BOOL Timer::OnInitDialog()
{
CDialog::OnInitDialog();
SetTimer(1, 1000, NULL);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void Timer::OnTimer(UINT nIDEvent)
{
if(TimerStillGoing==false) goto GetOut;
if(MINUTE==0)
{
HOUR=HOUR-1;
MINUTE=60;
}
if(SECOND==0)
{
MINUTE=MINUTE-1;
SECOND=60;
}
SECOND=SECOND-1;
OnUpdateScreen();
GetOut:
CDialog::OnTimer(nIDEvent);
}
代码,我先得到
(这应该是小时,但得到''):(这里' s支持30但得到''):(这里' s sup。为0但得到'')
但是一秒钟之后,我明白了 (这里没什么):1:;
然后我得到了 (仍然没有):1 ::
然后, (仍然没有):1:9
然后, (仍然没有):1:8
你认为这不是很奇怪吗?我不确定我的代码是否错误。 THX ..答案 0 :(得分:0)
SetDlgItemText需要一个字符串(LPCTSTR)。你似乎把它传给了一个整数。那不应该编译。