## 2.4Box类型
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会减去相应的偏移量
- 第一章:FLTK编程模型
- 1.1FLTK功能简介
- 1.2搭建FLTK开发环境
- 1.3FLTK构件简介
- 1.4FLTK事件处理
- 1.5FLTK消息处理
- 1.6OpenGL编程
- 第二章:常用的控件和属性
- 2.1按钮
- 2.2文本
- 2.3颜色
- 2.4Box类型
- 第三章:FLTK的画图函数
- 3.1何时可以画图
- 3.2 FLTK的画图函数
- 3.3剪切
- 3.4颜色
- 3.5设置线条的属性
- 3.6画一般的图形函数
- 3.7画封闭的线,一次连接个顶点
- 3.8画三边形或四边形,并填充内部
- 3.9复杂图形函数
- 3.10字体
- 3.11覆盖画图函数
- 第四章:在FLTK中自定义控件
- 4.1定制图形控件说明
- 4.2如何开发一个控件的子类
- 4.3处理事件
- 4.4画控件