2015-02-10 10 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

+0

@ Lambda Glad Я мог бы помочь. :-) –

Смежные вопросы