Objetos de GDI
Los objetos GDI solo admiten un identificador por objeto. Los identificadores de los objetos GDI son privados para un proceso. Es decir, solo el proceso que creó el objeto GDI puede usar el identificador de objeto.
Hay un límite teórico de 65.536 identificadores GDI por sesión. Sin embargo, el número máximo de identificadores GDI que se pueden abrir por sesión suele ser inferior, ya que se ve afectado por la memoria disponible.
Windows 2000: Hay un límite de 16 384 identificadores GDI por sesión.
También hay un límite predeterminado por proceso de identificadores GDI. Para cambiar este límite, establezca el siguiente valor del Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Currentversion\Windows\GDIProcessHandleQuota
Este valor se puede establecer en un número comprendido entre 256 y 65 536.
Windows 2000: Este valor se puede establecer en un número comprendido entre 256 y 16.384.
Administración de objetos GDI
En la tabla siguiente se enumeran los objetos GDI, junto con las funciones creador y destructor de cada objeto. Las funciones de creador crean el objeto y un identificador de objeto o simplemente devuelven el identificador de objeto existente. Las funciones de destructor quitan el objeto de la memoria, que invalida el identificador de objeto.
GDI (objeto) | Función Creator | Función Destroyer |
---|---|---|
Bitmap | CreateBitmap, CreateBitmapIndirect, CreateCompatibleBitmap, CreateDIBitmap, CreateDIBSection, CreateDiscardableBitmap | DeleteObject |
Pincel | CreateBrushIndirect, CreateDIBPatternBrush, CreateDIBPatternBrushPt, CreateHatchBrush, CreatePatternBrush, CreateSolidBrush | DeleteObject |
DC | CreateDC | DeleteDC, ReleaseDC |
Metarchivo mejorado | CreateEnhMetaFile | DeleteEnhMetaFile |
DC de metarchivo mejorado | CreateEnhMetaFile | CloseEnhMetaFile |
Fuente | CreateFont, CreateFontIndirect | DeleteObject |
Controlador de dominio de memoria | CreateCompatibleDC | DeleteDC |
Metarchivo de | CreateMetaFile | DeleteMetaFile |
Metafile DC | CreateMetaFile | CloseMetaFile |
Paleta | CreatePalette | DeleteObject |
Lápiz y lápiz extendido | CreatePen, CreatePenIndirect, ExtCreatePen | DeleteObject |
Region | CombineRgn, CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolyPolygonRgn, CreateRectRgn, CreateRectRgnIndirect, CreateRoundRectRgn, ExtCreateRegion, PathToRegion | DeleteObject |