【问题标题】:Handling top 'x' close button click in SDL2 window处理 SDL2 窗口中的顶部“x”关闭按钮单击
【发布时间】:2018-11-02 03:32:47
【问题描述】:

在 SDL2 程序中按最后一个现有窗口上的关闭 ('x') 按钮有很多问题和答案。在这种情况下,会触发 SDL_QUIT 事件(请参阅https://wiki.libsdl.org/SDL_EventType),您可以通过它处理该事件。但是,如果您打开了两个或更多窗口,并按下其中一个上的关闭按钮,会触发哪个事件?我在这方面找不到任何东西。我曾尝试使用 SDL_WINDOWEVENT_CLOSE 来捕捉事件,但这似乎也不起作用。

【问题讨论】:

  • event.type==SDL_WINDOWEVENT && event.window.event==SDL_WINDOWEVENT_CLOSE
  • 谢谢,如果您想添加它作为答案,我会接受它,否则我将保持原样

标签: events sdl-2


【解决方案1】:

下面是一个简短的 C++ sn-p:单击“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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    相关资源
    最近更新 更多