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

相關問題