Exibir contextos do dispositivo
Um aplicativo obtém um DC de exibição chamando a função BeginPaint, GetDCou função getDCEx e identificando a janela na qual a saída correspondente será exibida. Normalmente, um aplicativo obtém um DC de exibição somente quando deve desenhar na área do cliente. No entanto, pode-se obter uma de contexto de dispositivo de janela chamando a funçãogetWindowDC. Quando o aplicativo terminar de desenhar, ele deverá liberar o DC chamando a funçãoEndPaint ou ReleaseDC.
Há cinco tipos de DCs para exibições de vídeo:
- Classe
- Comum
- Privado
- Janela
- Pai
Contextos de dispositivo de classe
contextos de dispositivo de classe têm suporte estritamente para compatibilidade com versões de 16 bits do Windows. Ao escrever seu aplicativo, evite usar o contexto do dispositivo de classe; em vez disso, use um contexto de dispositivo privado.
Contextos comuns do dispositivo
os contextos comuns do dispositivo são os DCs de exibição mantidos em um cache especial pelo sistema. Contextos comuns de dispositivo são usados em aplicativos que executam operações de desenho pouco frequentes. Antes que o sistema retorne o identificador dc, ele inicializa o contexto de dispositivo comum com objetos, atributos e modos padrão. Todas as operações de desenho executadas pelo aplicativo usam esses padrões, a menos que uma das funções GDI seja chamada para selecionar um novo objeto, alterar os atributos de um objeto existente ou selecionar um novo modo.
Como existe apenas um número limitado de contextos comuns do dispositivo, um aplicativo deve liberá-los depois que terminar de desenhar. Quando o aplicativo libera um contexto de dispositivo comum, todas as alterações nos dados padrão são perdidas.
Contextos de dispositivo privado
contextos de dispositivo privado são DCs de exibição que, ao contrário dos contextos comuns do dispositivo, retêm quaisquer alterações nos dados padrão mesmo depois que um aplicativo os libera. Os contextos de dispositivo privado são usados em aplicativos que executam várias operações de desenho, como aplicativos CAD (design auxiliado por computador), aplicativos de publicação de área de trabalho, aplicativos de desenho e pintura e assim por diante. Os contextos de dispositivo privado não fazem parte do cache do sistema e, portanto, não precisam ser liberados após o uso. O sistema remove automaticamente um contexto de dispositivo privado após a última janela dessa classe ter sido destruída.
Um aplicativo cria um contexto de dispositivo privado especificando primeiro o estilo da classe de janela CS_OWNDC quando inicializa o de estilo membro da estruturaWNDCLASSe chama a funçãoRegisterClass. (Para obter mais informações sobre classes de janela, consulte Classes de Janela.)
Depois de criar uma janela com o estilo CS_OWNDC, um aplicativo pode chamar a função GetDC, GetDCExou BeginPaint uma vez para obter um identificador que identifique um contexto de dispositivo privado. O aplicativo pode continuar usando esse identificador (e o DC associado) até excluir a janela criada com essa classe. Todas as alterações em objetos gráficos e seus atributos ou modos gráficos são mantidas pelo sistema até que a janela seja excluída.
Contextos do dispositivo de janela
Um contexto de dispositivo de janela permite que um aplicativo desenhe em qualquer lugar de uma janela, incluindo a área nãocliente. Os contextos do dispositivo de janela normalmente são usados por aplicativos que processam o WM_NCPAINT e WM_NCACTIVATE mensagens para janelas com áreas não comuns personalizadas. O uso de um contexto de dispositivo de janela não é recomendado para qualquer outra finalidade. Para obter mais informações; consulte getWindowDC.
Contextos do dispositivo pai
Um contexto de dispositivo pai permite que um aplicativo minimize o tempo necessário para configurar a região de recorte para uma janela. Um aplicativo normalmente usa contextos de dispositivo pai para acelerar o desenho para janelas de controle sem a necessidade de um contexto de dispositivo privado ou de classe. Por exemplo, o sistema usa contextos de dispositivo pai para botão push e controles de edição. Os contextos de dispositivo pai destinam-se apenas ao uso com janelas filho, nunca com janelas pop-up ou de nível superior. Para obter mais informações; consulte contextos de dispositivo de exibição pai.