Partilhar via


Contextos do dispositivo

Um contexto de dispositivo é uma estrutura de dados do Windows que contém informações sobre os 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 desenhar linhas, formas e texto. Os contextos de dispositivo permitem o desenho independente do dispositivo no Windows. Os contextos de dispositivo podem ser usados para desenhar na tela, na impressora ou em um metarquivo.

Os objetos CPaintDC encapsulam o idioma comum do Windows, chamando a função BeginPaint, desenhando no contexto do dispositivo e, em seguida, chamando a função EndPaint. O CPaintDC construtor chama BeginPaint por você, e o destruidor chama EndPaint. O processo simplificado é criar o objeto CDC , desenhar e, em seguida, destruir o CDC objeto. No quadro, grande parte deste processo é automatizado. Em particular, sua OnDraw função é passada um CPaintDC já preparado (via OnPrepareDC), e você simplesmente desenha nele. Ele é destruído pela estrutura e o contexto do dispositivo subjacente é liberado para o Windows após o retorno da chamada para sua OnDraw função.

Os objetos CClientDC encapsulam o trabalho com um contexto de dispositivo que representa apenas a área do cliente de uma janela. O CClientDC construtor chama a GetDC função, e o destruidor chama a ReleaseDC função. Os objetos CWindowDC encapsulam um contexto de dispositivo que representa toda a janela, incluindo seu quadro.

Os objetos CMetaFileDC encapsulam o desenho em um metarquivo do Windows. Em contraste com o CPaintDC passado para OnDraw, você deve, neste caso, chamar OnPrepareDC você mesmo.

Desenho do mouse

A maioria dos desenhos num programa de estrutura — e, portanto, a maior parte do trabalho de contexto de dispositivo — é feita na função-membro da OnDraw vista. No entanto, você ainda pode usar objetos de contexto de dispositivo para outros fins. Por exemplo, para fornecer feedback de rastreamento do movimento do rato numa vista, é necessário desenhar diretamente na vista sem esperar que OnDraw seja chamado.

Nesse caso, você pode usar um objeto de contexto de dispositivo CClientDC para desenhar diretamente na exibição.

O que você quer saber mais sobre

Ver também

Objetos de janela