Compartir a través de


Contextos de dispositivo

Un contexto de dispositivo es una estructura de datos de Windows que contiene información sobre los atributos de dibujo de un dispositivo, como una pantalla o una impresora. Todas las llamadas de dibujo se realizan a través de un objeto de contexto de dispositivo, que encapsula las API de Windows para dibujar líneas, formas y texto. Los contextos de dispositivo permiten el dibujo independiente del dispositivo en Windows. Los contextos de dispositivo se pueden usar para dibujar en la pantalla, en la impresora o en un metarchivo.

Los objetos CPaintDC encapsulan la expresión común de Windows, llamando a la BeginPaint función y, a continuación, dibujando en el contexto del dispositivo y llamando a la EndPaint función. El CPaintDC constructor llama BeginPaint a usted y el destructor llama a EndPaint. El proceso simplificado consiste en crear el objeto CDC , dibujar y, a continuación, destruir el CDC objeto. En el marco, gran parte de incluso este proceso se automatiza. En concreto, la OnDraw función se pasa ya CPaintDC preparada (a través OnPrepareDCde ) y simplemente dibuja en ella. El marco lo destruye y el contexto del dispositivo subyacente se libera en Windows tras volver de la llamada a la OnDraw función.

Los objetos CClientDC encapsulan el trabajo con un contexto de dispositivo que representa solo el área cliente de una ventana. El CClientDC constructor llama a la GetDC función y el destructor llama a la ReleaseDC función . Los objetos CWindowDC encapsulan un contexto de dispositivo que representa toda la ventana, incluido su marco.

Los objetos CMetaFileDC encapsulan el dibujo en un metarchivo de Windows. A diferencia de lo CPaintDC pasado a OnDraw, en este caso debe llamar a OnPrepareDC usted mismo.

Dibujo del mouse

La mayoría de los dibujos en un programa de marco (y, por tanto, la mayoría del trabajo de contexto del dispositivo) se realizan en la función miembro de OnDraw la vista. Sin embargo, todavía puede usar objetos de contexto de dispositivo para otros fines. Por ejemplo, para proporcionar comentarios de seguimiento para el movimiento del mouse en una vista, debe dibujar directamente en la vista sin esperar OnDraw a que se llame.

En tal caso, puede usar un objeto de contexto de dispositivo CClientDC para dibujar directamente en la vista.

¿Qué quieres saber más sobre

Consulte también

Objetos de ventana