当前位置: 首页 > 文档资料 > FLTK 中文手册 >

2.4Box类型

优质
小牛编辑
147浏览
2023-12-01

Fl_Boxtype的类型在<Enumeration.H>中定义,可以用Fl_Widget::box()设置和得到。

FL_NO_BOX意思是任何东西都不要画,但仍然是留在窗口上。Fl_FRAME类型只是画边框,中间不做任何改变。如图中蓝色的部分。

制作你自己的Boxtypes

你可以自己制作个性风格的boxtype.通过一个小函数,并将其加到boxtypes的列表中画图函数

画图函数传递的参数控件的是box的边界和背景颜色

void xyz_draw(int x, int y, int w, int h, Fl_Color c)
{

}

如一个简单的画图函数填充一个矩形,给定颜色并画一个黑色的外框

void xyz_draw(int x, int y, int w, int h, Fl_Color c)
{  
    fl_color(c);  
    fl_rectf(x, y, w, h);  
    fl_color(FL_BLACK);  
    fl_rect(x, y, w, h);
}

加入自定义的box类型

Fl::set_boxtype函数添加或取代特定的box类型

#define XYZ_BOX FL_FREE_BOXTYPEFl::set_boxtype(XYZ_BOX, xyz_draw, 1, 1, 2, 2);

最后4个参数是偏移量,当画该 box时,x,y,w,h会减去相应的偏移量