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.
Para permitir que os aplicativos coloquem a saída na memória em vez de enviá-la para um dispositivo real, use um contexto de dispositivo especial para operações de bitmap chamado contexto de dispositivo de memória . Um controlador de domínio de memória permite que o sistema trate uma parte da memória como um dispositivo virtual. É uma matriz de bits na memória que um aplicativo pode usar temporariamente para armazenar os dados de cor para bitmaps criados em uma superfície de desenho normal. Como o bitmap é compatível com o dispositivo, um DC de memória também é às vezes chamado de contexto de dispositivo compatível com .
O DC de memória armazena imagens bitmap para um dispositivo específico. Um aplicativo pode criar um DC de memória chamando a funçãoCreateCompatibleDC.
O bitmap original em um DC de memória é simplesmente um espaço reservado. Suas dimensões são de um pixel por um pixel. Antes que um aplicativo possa começar a desenhar, ele deve selecionar um bitmap com a largura e altura apropriadas no DC chamando a função SelectObject. Para criar um bitmap das dimensões apropriadas, use o CreateBitmap, CreateBitmapIndirectou função de CreateCompatibleBitmap. Depois que o bitmap é selecionado no DC de memória, o sistema substitui a matriz de bit único por uma matriz grande o suficiente para armazenar informações de cor para o retângulo especificado de pixels.
Quando um aplicativo passa o identificador retornado por CreateCompatibleDC para uma das funções de desenho, a saída solicitada não aparece na superfície de desenho de um dispositivo. Em vez disso, o sistema armazena as informações de cor para a linha, curva, texto ou região resultante na matriz de bits. O aplicativo pode copiar a imagem armazenada na memória de volta para uma superfície de desenho chamando a funçãoBitBlt, identificando o DC de memória como o contexto do dispositivo de origem e uma janela ou tela DC como o contexto do dispositivo de destino.
Ao exibir um DIB ou um DDB criado a partir de um DIB em um dispositivo de paleta, você pode melhorar a velocidade na qual a imagem é desenhada organizando a paleta lógica para corresponder ao layout da paleta do sistema. Para fazer isso, chame GetDeviceCaps com o valor NUMRESERVED para obter o número de cores reservadas no sistema. Em seguida, chame GetSystemPaletteEntries e preencha a primeira e a última entradas NUMRESERVED/2 da paleta lógica com as cores do sistema correspondentes. Por exemplo, se NUMRESERVED for 20, você preencheria a primeira e as últimas 10 entradas da paleta lógica com as cores do sistema. Em seguida, preencha as 256 cores restantes da paleta lógica (no nosso exemplo, as 236 cores restantes) com cores do DIB e defina a bandeira PC_NOCOLLAPSE em cada uma dessas cores.
Para obter mais informações sobre cores e paletas, consulte Cores. Para obter mais informações sobre bitmaps e operações de bitmap, consulte Bitmaps.