FLTK Fl_Scrollbar 问题

FLTK Fl_Scrollbar Issue

我对滚动条没有什么问题。

问题是如果我再次将滚动条移回顶部,就没有分隔符了。

#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Scroll.H>
#include <FL/Fl_Box.H>
#define BW 200 //box width
#define BH 50 //box height
#define SEP 10 //separator

int main(){
  Fl_Window win(500, 300);
  Fl_Scroll *scr=new Fl_Scroll(10,10,win.w()-20,win.h()-20);
  scr->color(FL_GREEN);
  int col=scr->w()/BW;
  int c=0,line=SEP;
  for(int i=1;i<=20;i++){
     Fl_Box *b = new Fl_Box(scr->x()+SEP+(c*(BW+SEP)),scr->y()+line,BW,BH);
     b->box(FL_FLAT_BOX);
     b->color(FL_RED);
     c += 1;
     if(c == col){
        c = 0;
        line += (BH + SEP);
     }
  }
  new Fl_Box(SEP,scr->y()+line-SEP,SEP,SEP);
  win.show();
  return Fl::run(); 
}

谢谢。

无法真正说出该行为的原因,但是

  1. 如果删除最后一个 Fl_Box,底部分隔符将消失。
  2. 如果在循环之前加一个框,不会丢掉顶行

    新 Fl_Box(SEP,0,SEP,SEP);