Contextos de dispositivo
Um contexto de dispositivo é uma estrutura de dados do Windows que contém informações sobre atributos de desenho de um dispositivo como um monitor ou uma impressora.Todas as chamadas de desenho são feitas por meio de um objeto de contexto de dispositivo, que encapsula as APIs do Windows para desenho de linhas, formas e texto.Contextos de dispositivo permitem desenho independentes de dispositivo no Windows.Contextos de dispositivo podem ser usados para desenhar na tela, impressora ou um metarquivo.
CPaintDC objetos encapsulam o idioma comum do Windows, chamar o BeginPaint função, e o contexto de dispositivo de desenho, em seguida chamando o EndPaint função.O CPaintDC chamadas de construtor BeginPaint e chamadas destruidor EndPaint.Processo simplificado é criar o CDC de objeto, desenhar e depois destruir o CDC objeto.No framework, muito mesmo esse processo é automatizado.Em particular, o OnDraw função é passada uma CPaintDC já preparado (via OnPrepareDC), e basta desenhar nela.É destruído pelo framework e o contexto de dispositivo subjacente é liberado para o Windows após retornar da chamada para seu OnDraw função.
CClientDC objetos encapsulam trabalhar com um contexto de dispositivo que representa apenas a área cliente de uma janela.O CClientDC chamadas de construtor de GetDC função e chamadas de destruidor de ReleaseDC função.CWindowDC objetos encapsulam um contexto de dispositivo que representa a janela inteira, incluindo seu quadro.
CMetaFileDC objetos encapsulam o desenho em um metarquivo do Windows.Em contraste com o CPaintDC passado para OnDraw, nesse caso você deve chamar OnPrepareDC si mesmo.
Desenho de mouse
A maioria dos desenho em um programa framework — e, portanto, a maioria dos trabalhos de contexto de dispositivo — é feita no modo de exibição OnDraw função de membro.No entanto, você ainda pode usar objetos de contexto de dispositivo para outros fins.Por exemplo, para fornecer comentários de controle de movimento do mouse em uma exibição, você precisará desenhar diretamente no modo de exibição sem esperar por OnDraw a ser chamado.
Nesse caso, você pode usar um CClientDC objeto de contexto de dispositivo para desenhar diretamente no modo de exibição.