Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Depois que um aplicativo cria um monitor ou impressora DC, 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 desenho começar, e às vezes enquanto o desenho está em andamento, muitas vezes é necessário substituir os objetos padrão por novos objetos.
Um aplicativo pode examinar os atributos de um objeto padrão chamando o GetCurrentObject e funções de GetObject. A função GetCurrentObject retorna um identificador que identifica a caneta, o pincel, a paleta, o bitmap ou a fonte atual e a função GetObject inicializa uma estrutura que contém os atributos desse objeto.
Algumas impressoras fornecem canetas, pincéis e fontes residentes que podem ser usados 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 o EnumFontFamilies função (que também pode enumerar fontes GDI).
Quando um aplicativo determina que um objeto padrão precisa ser substituído, ele cria um novo objeto chamando uma das seguintes funções de criação.
| Objeto gráfico | Função |
|---|---|
| Bitmap | CreateBitmap, CreateBitmapIndirect, CreateCompatibleBitmap, CreateDiscardableBitmapCreateDIBitmap |
| Pincel | CreateBrushIndirect, CreateDIBPatternBrush, CreateDIBPatternBrushPt, CreateHatchBrush, CreatePatternBrushCreateSolidBrush |
| Paleta de cores | CreatePalette |
| Fonte | CreateFont, CreateFontIndirect |
| Caneta | CreatePen, CreatePenIndirectExtCreatePen |
| Região | CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolygonRgn, 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 termina de desenhar com o novo objeto, ele deve restaurar o objeto padrão chamando a função SelectObject e, em seguida, excluir o novo objeto chamando a funçãoDeleteObject. A falha ao excluir objetos causa sérios problemas de desempenho.