SDL:使用SDLmain.lib响应SDL_Quit,Esc

时间:2013-06-05 17:55:28

标签: c++ sdl

我想将SDL与SDLmain.lib一起使用(因为我正在为一个类设计一些东西,所以它需要很简单)。

当我单击显示窗口上的X(而不是控制台窗口,如果我有一个)时,程序不会结束。当我击中Escape时它也不会结束,这会很好。最后,当我尝试在Windows中显示桌面时,如果正在运行SDL程序,则不会发生任何事情。 (我把它包含在相关的情况下。)

如果我没有使用SDLmain,我会编辑WndProc。想想看,SDL肯定应该有WndProc吗?但不是。我该怎么做才能告诉SDL回复这些消息?我可以在main中使用SDL_PollEvent,但是a)这意味着我必须在main中有一个事件检查循环,这并不总是合适的,并且b)我不确定我是怎么告诉它要听的点击X。

2 个答案:

答案 0 :(得分:0)

您必须调用其中一个事件抽取函数,以使SDL泵入窗口的消息队列。这必须在创建窗口的线程上完成。

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

答案 1 :(得分:0)

简单event函数的示例

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 ;
    }
}