2015-02-10 114 views
1

这里有一些麻烦,现在我只是想让图像在屏幕上移动,变量和定位正在工作,但由于某种原因,OnTimer从未被调用过,我在它内部放置了一个断点,它从未到达。没有错误,所以我认为所有的方法和变量都在头文件中正确定义。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

可能的原因,你没有看到你的OnTimer解雇是因为你可能碰巧忘了在正确的地方插入ON_WM_TIMER()

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

MFC是一个消息驱动系统。

确保您始终告知系统您决定管理哪些消息。

+0

我知道它会是简单的东西!非常感谢你。 – Lambda 2015-02-11 00:17:56

+0

@ Lambda很高兴我能帮到你。 :-) – 2015-02-11 07:19:51

相关问题