畫(huà)筆和畫(huà)刷都是GDI所定義的圖形對(duì)象,畫(huà)筆是線(xiàn)條的樣式,畫(huà)刷則是封閉圖形內(nèi)部填充的樣式。可以自定義繪圖所用畫(huà)筆及畫(huà)刷的樣式,系統(tǒng)預(yù)設(shè)畫(huà)筆的樣式為BLACK_PEN,畫(huà)刷的樣式為NULL_BRUSH。
要自定義畫(huà)筆或畫(huà)刷,可以使用下列3個(gè)API函數(shù)。



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

這個(gè)SelectObject()函數(shù)所輸入的第二個(gè)參數(shù)就是GDI對(duì)象的handle,而返回值則是前一次所使用的GDI對(duì)象。除了這一小節(jié)所介紹的畫(huà)筆,畫(huà)刷是屬于GDI對(duì)象外,其他的GDI對(duì)象還有:位圖、字體、區(qū)域及調(diào)色板。
GDI對(duì)象一經(jīng)建立便會(huì)占用部分內(nèi)存,一旦不使用的時(shí)候,務(wù)必將它們刪除,刪除函數(shù)如下:

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

PS:如想獲得更多關(guān)于Visual C++游戲開(kāi)發(fā)的內(nèi)容,可點(diǎn)擊隨筆:《Visual C++游戲編程基礎(chǔ)》學(xué)習(xí)筆記——索引隨筆。