C++11 FLTK窗口不显示在while循环c++;

C++11 FLTK窗口不显示在while循环c++;,c++11,fltk,C++11,Fltk,我试图在FLTK中实现一个游戏循环 void SnakeFLTK::init() { _display = new Fl_Window(900, 600); if (!_display) throw SnakeFLTKException("Couldn't make fltk window!"); _display->color(FL_BLACK); _display->show(); while (!_doExit) {

我试图在FLTK中实现一个游戏循环

void SnakeFLTK::init() {
    _display = new Fl_Window(900, 600);
    if (!_display)
        throw SnakeFLTKException("Couldn't make fltk window!");
    _display->color(FL_BLACK);
    _display->show();
    while (!_doExit) {
        std::cout << "-->" << std::endl;
    }
    Fl::run();
}
但是这个方法似乎有自己的循环来等待事件。
如何像以前那样实现循环并显示窗口?

FLTK在调用
Fl::run
之前什么都不做。因此,在调用
Fl::run
之后不能执行任何操作,因为只有在主窗口关闭时函数才会返回

正是为了在Fltk本身“运行”时执行某些操作,您可以这样注册到空闲循环:

void CallbackFunc( void* )
{
    std::cout << "Hallo" << std::endl;
}

int main() {
    auto _display = new Fl_Window(900, 600);
    _display->color(FL_BLACK);
    _display->show();
    Fl::add_idle( CallbackFunc );
    Fl::run();
}
void CallbackFunc(void*)
{
std::cout show();
Fl::add_idle(CallbackFunc);
Fl::run();
}

在给定的回调函数中,您可以在FLTK中进行绘图或任何您想在FLTK中实现的操作,这些操作不是由来自活动小部件本身的事件驱动的。

哦,对不起,自从我提出问题以来,我一直忙于另一个库。
void CallbackFunc( void* )
{
    std::cout << "Hallo" << std::endl;
}

int main() {
    auto _display = new Fl_Window(900, 600);
    _display->color(FL_BLACK);
    _display->show();
    Fl::add_idle( CallbackFunc );
    Fl::run();
}