一、gdi相關概念
1、gdi(graphics device inte***ce):圖形裝置介面,是乙個應用程式與輸出裝置之間的中介。它提供了一套函式庫,這些函式在不同的輸出裝置上輸出圖形和文字。一方面,gdi向應用程式提供乙個與裝置無關的程式設計環境,另一方面,它又以裝置相關的格式和具體的裝置打交道。
2、dc (device context):裝置描述表(裝置上下文),是一種windows資料結構,包括了如線的寬度和顏色、刷子的樣式和顏色、字型、剪裁區域等資訊。用於表達顯示器、印表機等裝置。
dc的主要作用是進行繪圖和輸出文字,如繪製線條、形狀和文字等,具體如dc.moveto(),dc.lineto(),dc.ellipse(),dc.fillrect(),dc.fillsolidrect(),dc.textout()等。
win32下與hdc相關的函式有:getdc(), beginpaint()/endpaint(),getwindowdc()等
對應的mfc版本的類有:cdc, cpaintdc, cclientdc, cwindowdc等
3、gdi物件:dc定義了一組gdi物件,包括畫筆,畫刷,字型,位圖,調色盤,剪裁區域,路徑層(path)。他們有win32和mfc兩套實現版本,其對應關係如下:
win32物件
mfc類
hpen
cpen
hbrush
cbrush
hfont
cfont
hbitmap
cbitmap
hpalette
cpalette
hrgn
crgn
4、dc與gdi物件之間的關係:gdi物件是通過dc發生作用的,要使用這些gdi物件,可以使用win32函式selectobject來將其選入dc中,如::selectobject(hdc, hpen);
5、利用dc和gdi物件繪圖的完整步驟為:
(1). 獲取或者建立乙個dc
(2). 獲取或者建立乙個gdi物件(pen, brush等)
(3). 使用dc.selectobject函式把gdi物件選入dc
(4). 使用dc進行繪圖或文字輸出
(5). 恢復dc原來的gdi物件並刪除剛新建立的gdi物件,如pen.deleteobject()
(6). 釋放或刪除裝置描述表dc
其中,(1)和(6),(2)和(4)是成對出現的。
GDI程式設計之 Bitmap
dib,全稱device independent bitmap,裝置無關位 件,這是一種檔案格式,其目的是為了保證用某個應用程式建立的點陣圖圖形可以被其它應用程式裝載或顯示一樣。dib device indepentent bitmap 的與裝置無關性主要體現在以下兩個方面 由於dib不依賴於具體裝...
GDI 遊戲程式設計之2 GDI 基本使用
gdi 就是 window系統提供了一些函式,gdi 就是.net裡面對這些函式的封裝,這些函式主要是在system.drawing 裡面,他包含了 繪圖裝置,畫筆,畫刷,顏色等各種東西,反正就是那些視窗控制項什麼的都是用他畫出來的,比如 按鈕,選單 滾動條什麼的。gdi gdi 就是window系...
GDI 遊戲程式設計之1 基本要求
本教程開始,剛才寫了幾百字結果沒儲存,現在就不廢話了,不要那些了,本教程教你gdi 的使用,最終完成一些小遊戲開發,請確定具備以下知識,否則就不看算了。1.喜歡程式設計,不喜歡看了搞屁。2.重灌系統基本維護電腦硬體起碼都搞得清楚。3.語法,運算元據庫,什麼的常見的都要會。4.玩過一些遊戲,遊戲沒玩過...