2017-09-13 28 views
0

我對滾動條有點問題。FLTK Fl_Scrollbar問題

問題是沒有分隔符了,如果我再次將滾動條移回頂部。

#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(); 
} 

This is the picture

感謝。

回答

1

真的不能告訴是什麼原因該行爲,但

  1. 如果最後Fl_Box被刪除,底部隔膜消失。
  2. 如果循環前加入一個盒子,它不會失去頂行

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

+0

謝謝,它的工作原理。 – nimday