(MFC)计时器出错了

时间:2014-08-22 07:14:02

标签: timer mfc

我在这里问一个关于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 ..

1 个答案:

答案 0 :(得分:0)

SetDlgItemText需要一个字符串(LPCTSTR)。你似乎把它传给了一个整数。那不应该编译。