Compartilhar via


Objetos GDI

Os objetos GDI dão suporte apenas a um identificador por objeto. Identificadores para objetos GDI são privados para um processo. Ou seja, somente o processo que criou o objeto GDI pode usar o identificador de objeto.

Há um limite teórico de 65.536 identificadores GDI por sessão. No entanto, o número máximo de identificadores GDI que podem ser abertos por sessão geralmente é menor, pois é afetado pela memória disponível.

Windows 2000: Há um limite de 16.384 identificadores GDI por sessão.

Também há um limite padrão por processo de identificadores GDI. Para alterar esse limite, defina o seguinte valor do Registro:

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

Esse valor pode ser definido como um número entre 256 e 65.536.

Windows 2000: Esse valor pode ser definido como um número entre 256 e 16.384.

Gerenciando objetos GDI

A tabela a seguir lista os objetos GDI, juntamente com as funções de criador e destruidor de cada objeto. As funções do criador criam o objeto e um identificador de objeto ou simplesmente retornam o identificador de objeto existente. As funções do destruidor removem o objeto da memória, o que invalida o identificador do objeto.

Objeto GDI Função Criador Função Destroyer
Bitmap CreateBitmap, CreateBitmapIndirect, CreateCompatibleBitmap, CreateDIBitmap, CreateDIBSection, CreateDiscardableBitmap DeleteObject
Pincel CreateBrushIndirect, CreateDIBPatternBrush, CreateDIBPatternBrushPt, CreateHatchBrush, CreatePatternBrush, CreateSolidBrush DeleteObject
DC Createdc DeleteDC, ReleaseDC
Metafile aprimorado CreateEnhMetaFile Deleteenhmetafile
DC de meta-arquivo aprimorado CreateEnhMetaFile CloseEnhMetaFile
Fonte CreateFont, CreateFontIndirect DeleteObject
MEMÓRIA DC Createcompatibledc Deletedc
Metarquivo CreateMetaFile Deletemetafile
DC de metarquivo CreateMetaFile CloseMetaFile
Paleta Createpalette DeleteObject
Caneta e caneta estendida CreatePen, CreatePenIndirect, ExtCreatePen DeleteObject
Região CombineRgn, CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolyPolygonRgn, CreateRectRgn, CreateRectRgnIndirect, CreateRoundRectRgn, ExtCreateRegion, PathToRegion DeleteObject