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 函数
Bitmap CreateBitmapCreateBitmapIndirectCreateCompatibleBitmapCreateDIBitmapCreateDIBSectionCreateDiscardableBitmap DeleteObject
Brush CreateBrushIndirectCreateDIBPatternBrushCreateDIBPatternBrushPtCreateHatchBrushCreatePatternBrushCreateSolidBrush DeleteObject
DC CreateDC DeleteDCReleaseDC
增强型图元文件 CreateEnhMetaFile DeleteEnhMetaFile
增强型图元文件 DC CreateEnhMetaFile CloseEnhMetaFile
字体 CreateFontCreateFontIndirect DeleteObject
内存 DC CreateCompatibleDC DeleteDC
Metafile CreateMetaFile DeleteMetaFile
图元文件 DC CreateMetaFile CloseMetaFile
调色板 CreatePalette DeleteObject
触控笔和扩展笔 CreatePenCreatePenIndirectExtCreatePen DeleteObject
区域 CombineRgnCreateEllipticRgnCreateEllipticRgnIndirectCreatePolygonRgnCreatePolyPolygonRgnCreateRectRgnCreateRectRgnIndirectCreateRoundRectRgnExtCreateRegionPathToRegion DeleteObject