#include #include #include #include #include int demo1(int argc, char** argv) { // 创建主窗口 Fl_Window* window = new Fl_Window(800, 600, "FLTK 上下布局示例"); window->color(FL_WHITE); // 创建一个垂直排列的 Fl_Pack 容器 Fl_Pack* vpack = new Fl_Pack(0, 0, 800, 600); vpack->type(Fl_Pack::VERTICAL); // 设置为垂直布局 vpack->spacing(10); // 设置子部件之间的间距 // 上部分内容 Fl_Box* top_box = new Fl_Box(0, 0, 800, 300, "上部分"); top_box->box(FL_UP_BOX); top_box->color(FL_BLUE); top_box->labelsize(24); top_box->labelcolor(FL_WHITE); // 下部分内容 Fl_Box* bottom_box = new Fl_Box(0, 0, 800, 300, "下部分"); bottom_box->box(FL_UP_BOX); bottom_box->color(FL_GREEN); bottom_box->labelsize(24); bottom_box->labelcolor(FL_WHITE); // 结束 Fl_Pack 容器 vpack->end(); // 设置窗口的布局容器 window->end(); window->resizable(vpack); // 使布局随窗口缩放 window->show(argc, argv); // 运行事件循环 return Fl::run(); } int demo2() { auto* dialog = new Fl_Window(300, 100); auto* icon = new Fl_Box(0, 0, 50, 50, "!"); auto* text = new Fl_Box(50, 0, 250, 40, "Out of Memory Error"); auto* btns = new Fl_Group(50, 50, 250, 50); // parent group auto* darn = new Fl_Button(200, 50, 100, 50, "Darn!"); auto* R = new Fl_Box(50, 50, 150, 50); // "invisible" box "R" R->hide(); // make sure it's invisible btns->resizable(R); // make "R" parent group resizable btns->end(); dialog->resizable(darn); dialog->end(); dialog->show(); // 运行事件循环 return Fl::run(); } int main(int argc, char** argv) { // demo1(argc, argv); demo2(); }