Sobre contextos de dispositivo

A independência do dispositivo é um dos principais recursos do Microsoft Windows. Os aplicativos podem desenhar e imprimir a saída em uma variedade de dispositivos. O software que dá suporte a essa independência de dispositivo está contido em duas bibliotecas de vínculo dinâmico. O primeiro, Gdi.dll, é chamado de GDI (interface gráfica do dispositivo); o segundo é chamado de driver de dispositivo. O nome do segundo depende do dispositivo em que o aplicativo desenha a saída. Por exemplo, se o aplicativo desenhar a saída na área do cliente de sua janela em uma exibição VGA, essa biblioteca será Vga.dll; se o aplicativo imprimir a saída em uma impressora Epson FX-80, essa biblioteca será Epson9.dll.

Um aplicativo deve informar a GDI para carregar um driver de dispositivo específico e, depois que o driver for carregado, para preparar o dispositivo para operações de desenho (como selecionar uma cor e largura de linha, um padrão de pincel e cor, uma face de tipo de fonte, uma região de recorte e assim por diante). Essas tarefas são realizadas criando e mantendo um DC (contexto de dispositivo). Um DC é uma estrutura que define um conjunto de objetos gráficos e seus atributos associados e os modos gráficos que afetam a saída. Os objetos gráficos incluem uma caneta para desenho de linha, um pincel para pintura e preenchimento, um bitmap para copiar ou rolar partes da tela, uma paleta para definir o conjunto de cores disponíveis, uma região para recorte e outras operações e um caminho para operações de pintura e desenho. Ao contrário da maioria das estruturas, um aplicativo nunca tem acesso direto ao controlador de domínio; em vez disso, ele opera na estrutura indiretamente chamando várias funções.

Esta visão geral fornece informações sobre os seguintes tópicos:

Um conceito importante é o layout de um DC ou de uma janela, que descreve a ordem na qual objetos GDI e texto são revelados (da esquerda para a direita ou da direita para a esquerda). Para obter mais informações, confira "Layout e espelhamento de janela" em Recursos da janela e as funções GetLayout e SetLayout .