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();
}
谢谢。
无法真正说出该行为的原因,但是
- 如果删除最后一个 Fl_Box,底部分隔符将消失。
如果在循环之前加一个框,不会丢掉顶行
新 Fl_Box(SEP,0,SEP,SEP);
我对滚动条没有什么问题。
问题是如果我再次将滚动条移回顶部,就没有分隔符了。
#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();
}
谢谢。
无法真正说出该行为的原因,但是
- 如果删除最后一个 Fl_Box,底部分隔符将消失。
如果在循环之前加一个框,不会丢掉顶行
新 Fl_Box(SEP,0,SEP,SEP);