0

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

当我单击显示窗口上的 X 时(与控制台窗口相反,如果我有的话),程序并没有结束。当我点击 Escape 时它也没有结束,这很好。最后,当我尝试在 Windows 中显示桌面时,如果 SDL 程序正在运行,则没有任何反应。(我包括这个,以防它是相关的。)

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

4

2 回答 2

0

简单事件函数的示例

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 ;
    }
}
于 2013-06-07T12:21:06.367 回答
0

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

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

于 2013-06-05T18:02:10.467 回答