OnTimer 永远不会被调用,不确定为什么?

OnTimer never being called, unsure why?

这里有一些问题,现在我只是想让一个图像在屏幕上移动,变量和定位工作正常,但由于某种原因从未调用过 OnTimer,我在其中放置了一个断点并且它从未达到。没有错误,所以我假设所有方法和变量都在 header.

中正确定义

提前致谢

BOOL Client::OnInitDialog()
{
    CDialogEx::OnInitDialog();

    //StartGame();

    m_PlayerPosTop = 0;  // 384
    m_PlayerPosLeft = 0;
    m_PlayerImg.MoveWindow(m_PlayerPosLeft, m_PlayerPosTop, 16, 16);
    m_nTimer = SetTimer(0, 1000, 0);

    return TRUE;
}

    void Client::OnTimer(UINT_PTR nIDEvent)
{

    m_PlayerPosLeft++;
    m_PlayerImg.MoveWindow(m_PlayerPosLeft, m_PlayerPosTop, 16, 16);

    CDialogEx::OnTimer(nIDEvent);
}

由于 MFC 是一个 消息驱动的 系统,您没有看到 OnTimer 被触发的一个可能原因是您忘记定位 ON_WM_TIMER() 在正确的地方。

BEGIN_MEESAGE_MAP(...)
     // ..
     ON_WM_TIMER()
     // ..
END_MESSAGE_MAP()