Compartilhar via


Operações em objetos gráficos

Depois que um aplicativo cria um DC de exibição ou impressora, ele pode começar a desenhar no dispositivo associado ou, no caso do DC de memória, ele pode começar a desenhar no bitmap armazenado na memória. No entanto, antes do início do desenho e, às vezes, enquanto o desenho está em andamento, geralmente é necessário substituir os objetos padrão por novos objetos.

Um aplicativo pode examinar os atributos de um objeto padrão chamando as funções GetCurrentObject e GetObject . A função GetCurrentObject retorna um identificador que identifica a caneta, o pincel, a paleta, o bitmap ou a fonte atuais e a função GetObject inicializa uma estrutura que contém os atributos desse objeto.

Algumas impressoras fornecem canetas residentes, pincéis e fontes que podem ser usadas para melhorar a velocidade de desenho em um aplicativo. Duas funções podem ser usadas para enumerar esses objetos: EnumObjects e EnumFontFamilies. Se o aplicativo precisar enumerar canetas ou pincéis residentes, ele poderá chamar a função EnumObjects para examinar os atributos correspondentes. Se o aplicativo precisar enumerar fontes residentes, ele poderá chamar a função EnumFontFamilies (que também pode enumerar fontes GDI).

Depois que um aplicativo determina que um objeto padrão precisa ser substituído, ele cria um novo objeto chamando uma das funções de criação a seguir.

Objeto gráfico Função
Bitmap CreateBitmap, CreateBitmapIndirect, CreateCompatibleBitmap, CreateDiscardableBitmap, CreateDIBitmap
Pincel CreateBrushIndirect, CreateDIBPatternBrush, CreateDIBPatternBrushPt, CreateHatchBrush, CreatePatternBrush, CreateSolidBrush
Paleta de cores Createpalette
Fonte CreateFont, CreateFontIndirect
Caneta CreatePen, CreatePenIndirect, ExtCreatePen
Região CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolyPolygonRgn, CreateRectRgn, CreateRectRgnIndirect, CreateRoundRectRgn

 

Cada uma dessas funções retorna um identificador que identifica um novo objeto. Depois que um aplicativo recupera um identificador, ele deve chamar a função SelectObject para substituir o objeto padrão. No entanto, o aplicativo deve salvar o identificador que identifica o objeto padrão e usar esse identificador para substituir o novo objeto quando ele não for mais necessário. Quando o aplicativo terminar de desenhar com o novo objeto, ele deverá restaurar o objeto padrão chamando a função SelectObject e, em seguida, excluir o novo objeto chamando a função DeleteObject . Falha ao excluir objetos causa sérios problemas de desempenho.