CBrush畫刷定義了一種位圖形式的像素,利用它可對區域內部填充顏色。函數
該類封裝了Windows的圖形設備接口(GDI)刷子。經過該類構造的CBrush對象能夠傳遞給任何一個須要畫刷的CDC成員函數。該畫刷能夠是實線、陰影線和某種圖案spa
1. 構造CBrush對象指針
該類具備4個重載的構造函數,下面分別加以介紹對象
CBrush;接口
CBrush(COLORREF crColor);ci
CBrush(int nIndex,COLORREF crColor);原型
CBrush(CBitmap* pBitmap);it
第一個構造函數構造了一支未被初始化的畫刷,若是用戶使用了該構造函數,則必須對所獲得的CBrush對象進行初始化。table
其餘重的構造函數分別使用指定的顏色、限影線模式和顏色或位圖指針來構造一支以被初始化的畫刷。若是在調用過程當中遇到錯誤,則會產生一個異常。變量
下面是對這些構造函數所用到的參數的詳細說明:
參數crColor:以RGB顏色指定畫刷的前景色。若是是表示陰影線的畫刷,則該參數指定的是陰影線的顏色。
參數nIndex:指定了畫刷的陰影線的風格
畫刷的陰影線的樣式
陰影線參數值 | 註釋 |
HS_BDIAGONAL | 從左到右向下成45度的對角線 |
HS_CROSS | 水平線和垂直線相關的十字交叉線 |
HS_DIAGCROSS | 夾角爲45度的斜十字交叉線 |
HS_FDIAGONAL | 從左到右向上成45度的對角線 |
HS_HORIZONTAL | 水平陰影線 |
HS_VERTICAL | 垂直陰影線 |
參數pBitmap:指向一個CBitmap對象,該對象指定了一幅畫刷用來繪圖的位圖。
2。初始化CBrush對象
除了使用構造函數建立初始化過的畫刷對象,還有如下幾種初始化方法:
調用CBrush::CreateSolidBrush()成員函數來初始化實畫刷,以便使用純色來填充區域內部,該函數原型聲明以下:
BOOL CreateSolidBrush(COLORREF crColor)
參數crColor指定了由結構COLORREF定義的畫刷顏色,該顏色值是由定義在WINDOWS.H文件中的RGB宏指定的。
調用CBrush::CreateHatchBrush()成員函數來初始化陰影畫刷,其原型聲明以下:
BOOL CreateHatchBrush(int nIndex,COLORREF crColor);
參數與構造函數中的參數徹底相同。
調用CBrush::CreatePatternBrush()成員函數初始化一個圖形畫刷,當使用該畫刷填充圖形時,圖形內部將用位圖一個接一個的填充。該函數原型聲明以下:
BOOL CreatePatternBrush(CBitmap* pBitmap);
參數如前所述。
使用圖形畫刷須要注意的是在刪除圖形畫刷時,與畫刷相聯繫的位圖並未被刪除。位圖必須被單獨地刪除。
調用CBrush::CreateBrushIndirect()成員函數來建立畫刷對象,但畫刷的屬性並非直接經過函數參數形式給出的,而是經過LOGBRUSH結構的成員變量間接的給出的。該函數原型聲明以下:
BOOL CreateBrushIndirect(const LOGBURSH* lpLogBrush);
其中的lpLogBrushIndirect(const LOGBURSH* lpLogBrush);
其中的lpLogBrush參數是指向LOGBRUSH結構的指針。LOGBRUSH結構中包含有關畫刷的信息。
函數若是調用成功,則返回非零值,不然返回零。
另外咱們還能夠使用CBrush::CreateDIBPatternBrush()成員函數來建立一個由設備無關位圖(DIB)指定的圖形畫刷,該畫刷能夠被選進任何一種設備環境以便支持光柵操做。
應用CBrush對象進行繪圖
方法一:使用成員函數CreateBrushIndirect來建立一個藍色,風格爲BS_HATCHED畫刷對象來繪製一個具備十字交叉陰影線的矩形區域。
方法二:使用第二種構函數來建立一支綠色系統缺省的畫刷並繪製一個不帶任何陰影線的矩形區域
方法三:使用第三種構函數來建立一支紅色,樣式爲HS_BDIAGONAL的畫刷並繪製一個具備陰影線的矩形區域。