在这里遇到了一些麻烦,现在我只是想让图像在屏幕上移动,变量和位置都可以使用,但是由于某种原因,从未调用过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()
关于c++ - 永远不会调用OnTimer,不确定为什么吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28444031/