Timer (MFC)计时器出错

Timer (MFC)计时器出错,timer,mfc,Timer,Mfc,我来这里是想问一个关于WM_定时器和SetTimer的问题,但当我输入以下内容时: void Timer::OnUpdateScreen() { TimerStillGoing=false; m_hour=HOUR; SetDlgItemText(IDC_HR, m_hour); m_minute=MINUTE; SetDlgItemText(IDC_MIN, m_minute); m

我来这里是想问一个关于WM_定时器和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);
    }
代码,我先得到

(此处应为小时,但得到“”):(此处的sup.应为30,但得到“”):(此处的sup.应为0,但得到“”)

但一秒钟后,我明白了 (这里没有):1:

后来我得到了 (仍然没有):1::

那么, (仍然没有):1:9

那么, (仍然没有):1:8


你不觉得这很奇怪吗?我不确定我的代码是不是错了。thx..

SetDlgItemText需要一个字符串(LPCTSTR)。您似乎在传递一个整数。这不应该编译。

我不明白您希望处理什么。你在“代码,我先得到”之后的评论。。。充其量是令人困惑的。请编辑问题,并显示如何声明m_hour、m_minute、m_second、hour、minute和second