GDI程式設計

2021-06-04 18:10:54 字數 1564 閱讀 8477

一、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下與

hdcgetdc(), 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 程式設計

image和bitmap類概述 gdi 的image類封裝了對bmp gif jpeg png tiff wmf windows元檔案 和emf 增強wmf 影象檔案的調入 格式轉換以及簡單處理的功能。而bitmap是從image類繼承的乙個影象類,它封裝了windows點陣圖操作的常用功能。例如,...

GDI 程式設計

最近在學習vc mfc學習 就所學記錄下筆記 1 新增gdiplus.h檔案 通常在標頭檔案檔案中新增 如下 include include using namespace gdiplus 2 新增gdiplus.lib連線 方法一 直接在stdafx.h檔案中新增 pragma comment l...

使用GDI 程式設計

1.引言 gdi 是windows xp中的乙個子系統,它主要負責在顯示螢幕和列印裝置輸出有關資訊,它是一組通過c 類實現的應用程式程式設計介面。顧名思義,gdi 是以前版本gdi的繼承者,出於相容性考慮,windows xp仍然支援以前版本的gdi,但是在開發新應用程式的時候,開發人員為了滿足圖形...