## 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畫控件