共用方式為


圖形對象的作業

應用程式建立顯示器或印表機 DC 之後,就可以開始在相關聯的裝置上繪製,或者,在記憶體 DC 的情況下,它可以開始繪製儲存在記憶體中的位圖。 不過,在繪圖開始之前,有時在繪圖進行時,通常需要以新的 物件取代默認物件。

應用程式可以藉由呼叫 getCurrentObject GetObject 函式來檢查預設物件的屬性。 GetCurrentObject 函式會傳回句柄,識別目前的手寫筆、筆刷、調色盤、點陣圖或字型,而 getObject 函式會初始化包含該物件屬性的結構。

某些印表機提供常駐筆、筆刷和字型,可用來改善應用程式中的繪圖速度。 兩個函式可用來列舉這些物件:EnumObjectsEnumFontFamilies。 如果應用程式必須列舉常駐畫筆或筆刷,它可以呼叫 EnumObjects 函式來檢查對應的屬性。 如果應用程式必須列舉常駐字型,它可以呼叫 EnumFontFamilies 函式(也可以列舉 GDI 字型)。

一旦應用程式判斷預設物件需要取代,它會呼叫下列其中一個建立函式來建立新的物件。

Graphic 物件 功能
點陣圖 CreateBitmapCreateBitmapIndirectCreateCompatibleBitmapCreateDiscardableBitmapCreateDIBitmap
CreateBrushIndirectCreateDIBPatternBrushCreateDIBPatternBrushPtCreateHatchBrushCreatePatternBrushCreateSolidBrush
調色板 CreatePalette
字體 CreateFontCreateFontIndirect
CreatePenCreatePenIndirectExtCreatePen
地區 CreateEllipticRgnCreateEllipticRgnIndirectCreatePolygonRgnCreatePolyPolygonRgnCreateRectRgnCreateRectRgnIndirectCreateRoundRectRgn

 

每個函式都會傳回識別新物件的句柄。 應用程式擷取句柄之後,它必須呼叫 selectObject 函式來取代默認物件。 不過,應用程式應該儲存識別默認物件的句柄,並在不再需要新物件時使用此句柄來取代新物件。 當應用程式使用新物件完成繪圖時,它必須藉由呼叫 selectObject 函式 來還原預設物件,然後呼叫 DeleteObject 函式來刪除新的物件。 無法刪除物件會導致嚴重的效能問題。