在SDL2程序中按最后现有窗口上的关闭('x')按钮有很多问题和答案。在这种情况下,SDL_QUIT事件被触发(参见https://wiki.libsdl.org/SDL_EventType),您可以通过它来处理事件。但是,如果您打开两个或更多个窗口,并按其中一个窗口上的关闭按钮,会触发哪个事件?我找不到任何关于此事的内容。我已经尝试使用SDL_WINDOWEVENT_CLOSE来捕获事件,但这似乎也不起作用。
答案 0 :(得分:0)
下面是一个简短的C ++代码片段:单击“ X”按钮将关闭两个打开的窗口并退出应用程序。
switch (m_event.type) {
case SDL_KEYDOWN:
switch (m_event.key.keysym.sym) {
case SDLK_m: // enter menu state
case SDLK_ESCAPE:
machine->popState();
break;
default:
break;
}
break;
case SDL_WINDOWEVENT:
switch (m_event.window.event) {
case SDL_WINDOWEVENT_CLOSE: // exit game
machine->quit();
break;
default:
break;
}
break;
default:
// logFileStderr("TutorialState unknown event...\n");
break;
}