显示设备上下文缓存

系统维护用于常见、父级和窗口设备上下文的显示设备上下文的缓存。 每当应用程序调用 GetDCBeginPaint 函数时,系统都从缓存中检索设备上下文;当应用程序随后调用 ReleaseDCEndPaint 函数时,系统会将 DC 返回到缓存。

缓存可以容纳的设备上下文数量没有预先确定的限制;如果没有可用,系统将为缓存创建新的显示设备上下文。 鉴于此,一个应用程序一次可以从缓存具有五个以上的活动设备上下文。 但是,应用程序必须在使用后继续释放这些设备上下文。 由于缓存的新显示设备上下文是在应用程序的堆空间中分配的,因此未能释放设备上下文最终会占用所有可用的堆空间。 当系统无法为新设备上下文分配空间时,通过返回错误来指示此失败。 与缓存无关的其他函数也可能返回错误。