GDI 物件

GDI 物件只支援每個物件的一個控制碼。 GDI 物件的控制碼對進程是私用的。 也就是說,只有建立 GDI 物件的進程可以使用物件控制碼。

每個會話的理論限制為 65,536 個 GDI 控制碼。 不過,每個會話可以開啟的 GDI 控制碼數目上限通常較低,因為它會受到可用記憶體的影響。

Windows 2000:每個會話的限制為 16,384 GDI 控制碼。

GDI 控制碼也有預設的個別進程限制。 若要變更此限制,請設定下列登錄值:

\ HKEY_LOCAL_MACHINE軟體\微軟\Windows NT\CurrentVersion\Windows\GDIProcessHandleQuota

此值可以設定為介於 256 到 65,536 之間的數位。

Windows 2000:此值可以設定為介於 256 到 16,384 之間的數位。

管理 GDI 物件

下表列出 GDI 物件,以及每個物件的建立者和終端子函式。 建立者函式會建立物件和物件控制碼,或直接傳回現有的物件控制碼。 終端子函式會從記憶體中移除 物件,使物件控制碼失效。

GDI 物件 Creator 函式 Destroyer 函式
點陣圖 CreateBitmapCreateBitmapIndirectCreateCompatibleBitmapCreateDIBitmapCreateDIBSectionCreateDiscardableBitmap DeleteObject
筆刷 CreateBrushIndirectCreateDIBPatternBrushCreateDIBPatternBrushPtCreateHatchBrushCreatePatternBrush、CreateSolidBrush DeleteObject
DC CreateDC DeleteDCReleaseDC
增強型中繼檔 CreateEnhMetaFile DeleteEnhMetaFile
Enhanced-metafile DC CreateEnhMetaFile CloseEnhMetaFile
字型 CreateFontCreateFontIndirect DeleteObject
記憶體 DC CreateCompatibleDC DeleteDC
中繼檔 CreateMetaFile DeleteMetaFile
中繼檔 DC CreateMetaFile CloseMetaFile
調色盤 CreatePalette DeleteObject
畫筆和延伸畫筆 CreatePenCreatePenIndirectExtCreatePen DeleteObject
區域 CombineRgnCreateEllipticRgnCreateEllipticRgnIndirectCreatePolygonRgnCreatePolyPolygonRgnCreateRectRgn、CreateRectRgnIndirectCreateRoundRectRgnExtCreateRegionPathToRegion DeleteObject