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()
这里有一些问题,现在我只是想让一个图像在屏幕上移动,变量和定位工作正常,但由于某种原因从未调用过 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()