comment changer la couleur de fond de Fl_Window en appuyant sur Fl_Button

Quelqu’un peut-il me dire comment changer la couleur de fond de Fl_Window en appuyant sur Fl_Button. J’essaie de le faire de cette façon mais ça ne marche pas.

void new_color(Fl_Widget* w, void*){ Fl_Button* b = (Fl_Button*)w; b->parent()->color(FL_RED); } int main() } Fl_Window* win = new Fl_Window(...); win->color(FL_WHITE); win->begin(); Fl_Button* but = new Fl_Button(...); but->callback(new_color); win->end(); ... } 

Merci!!!

Comme indiqué par coupe, redraw fait le tour:

 #include  #include  #include  int main() { Fl_Window win(200, 200, "Color changer"); win.color(FL_WHITE); Fl_Button but(50, 80, 100, 20, "Click Me!"); but.callback([](Fl_Widget* w, void*) { Fl_Widget* p = w->parent(); p->color(p->color() == FL_WHITE ? FL_RED : FL_WHITE); p->redraw(); }); win.show(); return Fl::run(); }