问题可能出在KEYDOWN(VK_ESCAPE)这一行代码上。这行代码的作用是检查是否按下了ESC键,但在给出的代码片段中,无法确定KEYDOWN宏的定义和实现。

请确保以下几点:

  1. 确定KEYDOWN宏的定义和实现。如果没有定义,可以使用GetAsyncKeyState函数来检查按键状态。
  2. 确保hwnd参数传递正确,以确保消息被正确发送。

如果以上两个方面都没有问题,那么可能是其他地方的问题。可以尝试在GameRun函数中添加调试输出语句,以确认是否进入了按键判断的分支。例如,在按下ESC键后,可以添加以下代码来输出调试信息:

if (KEYDOWN(VK_ESCAPE))
{
    OutputDebugString(L"ESC key pressed\n");
    PostMessage(hwnd, WM_DESTROY, 0, 0);
}

运行程序后,在输出窗口中查看是否输出了"ESC key pressed"这一行信息。如果有输出,说明按键检测是正常的,可能问题出在其他地方。如果没有输出,那么可能是按键检测的代码有问题,需要进一步检查和调试。

void GameRunHWND hwnd if !d3ddev return; d3ddev-Clear0 nullptr D3DCLEAR_TARGET D3DCOLOR_XRGB0 0 112 10f 0; if d3ddev-BeginScene do something d3ddev-EndScene;stop rendering

原文地址: https://www.cveoy.top/t/topic/jbn6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录