Condividi tramite


Oggetti GDI

Gli oggetti GDI supportano un solo handle per oggetto. Gli handle per gli oggetti GDI sono privati di un processo. Ovvero, solo il processo che ha creato l'oggetto GDI può usare l'handle dell'oggetto.

Esiste un limite teorico di 65.536 handle GDI per sessione. Tuttavia, il numero massimo di handle GDI che possono essere aperti per sessione è in genere inferiore, poiché è interessato dalla memoria disponibile.

Windows 2000: Esiste un limite di 16.384 handle GDI per sessione.

Esiste anche un limite predefinito per processo di handle GDI. Per modificare questo limite, impostare il valore del Registro di sistema seguente:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\GDIProcessHandleQuota

Questo valore può essere impostato su un numero compreso tra 256 e 65.536.

Windows 2000: Questo valore può essere impostato su un numero compreso tra 256 e 16.384.

Gestione degli oggetti GDI

Nella tabella seguente sono elencati gli oggetti GDI, insieme alle funzioni creator e destroyer di ogni oggetto. Il creatore funziona per creare l'oggetto e un handle di oggetto o semplicemente restituire l'handle di oggetto esistente. Le funzioni destroyer rimuovono l'oggetto dalla memoria, che invalida l'handle dell'oggetto.

Oggetto GDI Funzione Creator Funzione Destroyer
Bitmap CreateBitmap, CreateBitmapIndirect, CreateCompatibleBitmap, CreateDIBitmap, CreateDIBSection, CreateDiscardableBitmap DeleteObject
Spazzola CreateBrushIndirect, CreateDIBPatternBrush, CreateDIBPatternBrushPt, CreateHatchBrush, CreatePatternBrush, CreateSolidBrush DeleteObject
DC CreateDC DeleteDC, ReleaseDC
Metafile avanzato CreateEnhMetaFile DeleteEnhMetaFile
Controller di dominio metafile avanzato CreateEnhMetaFile CloseEnhMetaFile
Font CreateFont, CreateFontIndirect DeleteObject
Controller di dominio di memoria CreateCompatibleDC DeleteDC
Metafile CreateMetaFile DeleteMetaFile
Controller di dominio metafile CreateMetaFile CloseMetaFile
Tavolozza CreatePalette DeleteObject
Penna e penna estesa CreatePen, CreatePenIndirect, ExtCreatePen DeleteObject
Regione CombineRgn, CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolyPolyPolygonRgn, CreateRectRgn, CreateRectRgnIndirect, CreateRoundRectRgn, ExtCreateRegion, PathToRegion DeleteObject