2017-09-13 5 views
0

J'ai un petit problème avec la barre de défilement.FLTK Fl_Scrollbar Problème

Le problème est qu'il n'y a plus de séparateur si je remonte la barre de défilement vers le haut.

#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

Merci.

Répondre

1

peut-elle dire pas vraiment ce que la raison est de ce comportement, mais

  1. Si la dernière Fl_Box est retirée, le séparateur de fond disparaît.
  2. Si une boîte est ajoutée avant la boucle, il ne perd pas la ligne supérieure

    nouveau Fl_Box (SEP, 0, SEP, SEP);

+0

Merci, cela fonctionne. – nimday