GDI 对象仅支持每个对象的一个句柄。 GDI 对象的句柄对进程是私有的。 也就是说,只有创建 GDI 对象的进程才能使用对象句柄。
每个会话的理论限制为 65,536 个 GDI 句柄。 但是,每个会话可以打开的最大 GDI 句柄数通常较低,因为它受可用内存的影响。
Windows 2000: 每个会话的限制为 16,384 GDI 句柄。
GDI 句柄的默认每进程限制也存在。 若要更改此限制,请设置以下注册表值:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\GDIProcessHandleQuota
此值可以设置为介于 256 和 65,536 之间的数字。
Windows 2000: 此值可以设置为介于 256 和 16,384 之间的数字。
管理 GDI 对象
下表列出了 GDI 对象以及每个对象的创建者和销毁器函数。 创建者函数可以创建对象和对象句柄,或者只返回现有对象句柄。 销毁器函数从内存中删除对象,使对象句柄失效。
GDI 对象
Creator 函数
Destroyer 函数
位图
CreateBitmap、CreateBitmapIndirect、CreateCompatibleBitmap、CreateDIBitmap、CreateDIBSection、CreateDiscardableBitmap
DeleteObject
刷
CreateBrushIndirect、CreateDIBPatternBrush、CreateDIBPatternBrushPt、CreateHatchBrush、CreatePatternBrush、CreateSolidBrush
DeleteObject
直流
CreateDC
DeleteDC,releaseDC
增强型图元文件
CreateEnhMetaFile
DeleteEnhMetaFile
增强型图元文件 DC
CreateEnhMetaFile
CloseEnhMetaFile
字体
CreateFont,CreateFontIndirect
DeleteObject
内存 DC
CreateCompatibleDC
DeleteDC
图元文件
CreateMetaFile
DeleteMetaFile
图元文件 DC
CreateMetaFile
CloseMetaFile
调色板
CreatePalette
DeleteObject
笔和扩展笔
CreatePen、CreatePenIndirect、ExtCreatePen
DeleteObject
地区
CombineRgn、CreateEllipticRgn、CreateEllipticRgnIndirect、CreatePolygonRgn、CreatePolyPolygonRgn、CreateRectRgn、CreateRectRgnIndirect、CreateRoundRectRgn、ExtCreateRegion、PathToRegion
DeleteObject