SDL: responding to SDL_Quit, Esc with SDLmain.lib

SDL: responding to SDL_Quit, Esc with SDLmain.lib

本文关键字:SDL Esc with SDLmain lib Quit responding to      更新时间:2023-10-16

我想在SDLmain中使用SDL。

当我点击显示窗口上的X时(如果我有一个控制台窗口,则与之相反),程序不会结束。它也不会在我按Escape键时结束,这很好。最后,当我尝试在Windows中显示桌面时,如果SDL程序正在运行,什么也没有发生。(我包括这个,以防它是相关的。)

如果我不使用SDLmain,我会编辑WndProc。仔细想想,SDLmain当然应该有windproc。但不喜欢。我怎么做才能告诉SDL响应这些消息?我可以在main中使用SDL_PollEvent,但是a)这意味着我必须在main中使用事件检查循环,这并不总是合适的,并且b)我不确定如何告诉它侦听单击x

一个简单的事件函数示例

SDL_Event event ;
while( SDL_PollEvent( &event ) )
{
    switch( event.type )       
    {
        case SDL_QUIT:
            running = FALSE ;  //set you variable that controls the main flow of the program to false
            break;
        default:
            break ;
    }
}

您必须调用一个事件泵送函数来使SDL泵送窗口的消息队列。这必须在创建窗口的线程上完成。

当您尝试通过X关闭窗口时,事件排队到SDL的事件队列(SDL_QUIT,我认为)。