畫筆和畫刷都是GDI所定義的圖形對象,畫筆是線條的樣式,畫刷則是封閉圖形內部填充的樣式。可以自定義繪圖所用畫筆及畫刷的樣式,系統預設畫筆的樣式為BLACK_PEN,畫刷的樣式為NULL_BRUSH。
要自定義畫筆或畫刷,可以使用下列3個API函數。



從上面的3個API函數可以看出,其返回值都是以英文字母“H”開頭,“H”在這里代表的就是前面所提過的“handle”(句柄)。
建立新畫筆與畫刷之后,必須在所要進行繪圖的DC中選用它們,才會產生預期的畫筆及畫刷效果,選用的函數如下:

這個SelectObject()函數所輸入的第二個參數就是GDI對象的handle,而返回值則是前一次所使用的GDI對象。除了這一小節所介紹的畫筆,畫刷是屬于GDI對象外,其他的GDI對象還有:位圖、字體、區域及調色板。
GDI對象一經建立便會占用部分內存,一旦不使用的時候,務必將它們刪除,刪除函數如下:

若刪除對象成功,則會返回布爾值“TRUE”,若失敗則返回“FALSE”。
范例ch2_1:建立7種系統所提供的畫筆即畫刷樣式,將結果繪制于窗口中
下載地址:ch2_1(上傳到windows live空間,可能需要MSN賬號登陸)
說明:程序源代碼中有相關的注釋。
最后運行結果圖:

PS:如想獲得更多關于Visual C++游戲開發的內容,可點擊隨筆:《Visual C++游戲編程基礎》學習筆記——索引隨筆。