OnTimer永远不会被打电话,不确定为什么?

时间:2015-02-10 23:43:02

标签: c++ timer mfc dialog

在这里遇到一些麻烦,现在我只是试图让图像在屏幕上移动,变量和定位正在工作但是由于某种原因,OnTimer永远不会被调用,我在其中放置一个断点并且它从未到过。没有错误,所以我假设所有方法和变量都在标题中正确定义。

提前致谢

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);
}

1 个答案:

答案 0 :(得分:1)

您没有看到OnTimer被解雇的可能原因是您可能碰巧忘记在正确的位置插入ON_WM_TIMER()

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

MFC是一个消息驱动系统。

确保您始终告诉系统您决定管理哪些邮件。