我想将SDL与SDLmain.lib一起使用(因为我正在为一个类设计一些东西,所以它需要很简单)。
当我单击显示窗口上的X(而不是控制台窗口,如果我有一个)时,程序不会结束。当我击中Escape时它也不会结束,这会很好。最后,当我尝试在Windows中显示桌面时,如果正在运行SDL程序,则不会发生任何事情。 (我把它包含在相关的情况下。)
如果我没有使用SDLmain,我会编辑WndProc。想想看,SDL肯定应该有WndProc吗?但不是。我该怎么做才能告诉SDL回复这些消息?我可以在main中使用SDL_PollEvent,但是a)这意味着我必须在main中有一个事件检查循环,这并不总是合适的,并且b)我不确定我是怎么告诉它要听的点击X。
答案 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 ;
}
}