GDI[在C語言Windows應用程式中使用GDI+]

GDI[在C語言Windows應用程式中使用GDI+]

GDI是圖形設備接口(GDI:Graphics Device Interface)的縮寫,是Windows的子系統,它負責在視訊顯示器和印表機上顯示圖形。 GDI+是Windows 2000及以後版本的一個子系統,同原有的GDI(圖形設備接口)一樣,主要負責對顯示器和印表機進行管理。

作用

正如您所認為的那樣,GDI是Windows非常重要的部分。不只您為Windows編寫的套用系統在顯示視覺信息時使用GDI,就連Windows本身也使用GDI來顯示使用者接口對象,諸如選單、滾動條、圖示和滑鼠游標。

在GDI中使用Rectangle繪製矩形時,GDI用當前畫筆繪製輪廓、用當前的畫刷將矩形內部自動填充,畫矩形和填充一步完成。

特點

GDI 是C++中常用的一種圖形圖像工具,VB、Delphi等語言也移植了GDI ,.net的諸多語言甚至完全採用GDI作為繪製其界面。

在Windows系統下,幾乎所有的API都是直接針對C語言的,除C/C++可直接使用這些API外,其它各種語言都必須移植這些API方法,而唯獨GDI,微軟提供的Gdiplus頭檔案,從類型定義到方法接口,都是針對C++寫的,這就使得C語言沒法使用這些面向對象的方法,即使是GDI提供的原始API,如果不重新定義其參數中眾多的數據類型,C語言也是沒法使用的。

在GDI中繪圖,首先必須為DC中選入一個畫筆對象(在DC中的畫筆只有一支是可以使用的),這支“筆”一直會使用到下次新選定畫筆為止。在GDI中畫一條直線首先得將筆的“當前位置”移到直線的起點坐標上(MoveTo),然後才能進行畫直線的操作。

版本

也許是因為C語言不適合編寫Windows界面應用程式,所以至今沒有發現GDI的C版本(可能有,但沒發現)。GDI 沒C版本的一個可能的原因是:C++版本中的眾多的重載函式,預設參數,用C來寫卻是頭都大了,不知道用什麼函式名才好(考慮GDI使用了這些年,新的函式名不應與原函式名偏離太遠)。

GDI+是對原有的GDI在功能上的升級,GDI+為我們提供的功能主要有三類:矢量圖形輸出、光柵圖形輸出和文字排版等。GDI+與傳統的GDI相比,主要有以下六方面的新特色:漸變畫刷、獨立的路徑對象(Path Objects)、矩陣對象(Matrix Object)、區域(Scalable Regions)、Alpha Blending和多格式圖片支持。

GDI+為我們提供了在編程時使用的應用程式接口API(Application Programming Interface),通過這些API函式,GDI+讓程式設計師在設計程式中不必考慮具體的顯示器或印表機,直接使用由GDI+提供的類的方法便可以調用顯示器或印表機,真正做到與設備無關。

相關詞條

熱門詞條

聯絡我們