GDI 对象

GDI 对象只支持每个对象一个句柄。 GDI 对象的句柄专用于进程。 也就是说,只有创建了 GDI 对象的进程才能使用对象句柄。

理论限制为每个会话 65536 GDI 句柄。 但是,每个会话可以打开的 GDI 句柄的最大数目通常较低,因为它受可用内存的影响。

Windows 2000: 每个会话的 GDI 句柄数限制为16384。

GDI 句柄的默认每进程限制也是默认值。 若要更改此限制,请设置以下注册表值:

HKEY _本地 _ 计算机 \ 软件 \ Microsoft \ Windows NT \ CurrentVersion \ Windows \ GDIProcessHandleQuota

此值可设置为介于256和65536之间的数字。

Windows 2000: 此值可设置为介于256和16384之间的数字。

管理 GDI 对象

下表列出了 GDI 对象,以及每个对象的 creator 和 destroyer 函数。 Creator 函数创建对象和对象句柄,或者只返回现有的对象句柄。 Destroyer 函数将对象从内存中删除,从而使对象句柄失效。

GDI 对象 Creator 函数 Destroyer 函数
Bitmap CreateBitmapCreateBitmapIndirectCreateCompatibleBitmapCreateDIBitmapCreateDIBSectionCreateDiscardableBitmap DeleteObject
Brush CreateBrushIndirectCreateDIBPatternBrushCreateDIBPatternBrushPtCreateHatchBrushCreatePatternBrushCreateSolidBrush DeleteObject
DC CreateDC DeleteDC ReleaseDC
增强型图元文件 CreateEnhMetaFile DeleteEnhMetaFile
增强型图元文件 DC CreateEnhMetaFile CloseEnhMetaFile
字体 CreateFont CreateFontIndirect DeleteObject
内存 DC CreateCompatibleDC DeleteDC
图元文件 CreateMetaFile DeleteMetaFile
图元文件 DC CreateMetaFile CloseMetaFile
调色板 CreatePalette DeleteObject
笔和扩展笔 CreatePenCreatePenIndirectExtCreatePen DeleteObject
区域 CombineRgnCreateEllipticRgnCreateEllipticRgnIndirectCreatePolygonRgnCreatePolyPolygonRgnCreateRectRgnCreateRectRgnIndirectCreateRoundRectRgnExtCreateRegionPathToRegion DeleteObject