图形对象
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 对象 | 创建 函数 | 销毁 函数 |
位图 | 创建位图、新建位图、创建图像、关联位图、内建位图、兼容位图 | 删除对象 |
画刷 | 新建笔刷、内建空刷、内建画刷、图案笔刷、内建笔刷、创建画刷 | 删除对象 |
设备上下文 | 驱动设备 | 删除设备、释放设备 |
增强型图元文件 | 创建强图 | 删除强图 |
增强型图元文件 DC | 创建图元 | 删除图元 |
字体 | 创建字体、新建字体 | 删除对象 |
内存 DC | 创建设备 | 删除设备 |
图元文件 | 创建图元 | 删除图元 |
图元文件 DC | 创建图元 | 关闭图元 |
调色板 | 创建色板 | 删除对象 |
触控笔和扩展笔 | 创建画笔、新建画笔、扩展画笔 | 删除对象 |
区域 | 合并区域、创建椭圆、新建椭圆、建多边区、叠多边区、创建矩形、新建矩形、建圆矩形、区域转换、转换区域 | 删除对象 |