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 el lenguaje común de Windows, llamando a la función BeginPaint, luego dibujando el contexto de dispositivo y, luego, llamando a la función EndPaint. El constructor CPaintDC llama automáticamente a BeginPaint y el destructor, a EndPaint. El proceso simplificado es crear el objeto CDC, dibujar y, luego, destruir el objeto CDC. En el marco, gran parte de este proceso es automatizado. En concreto, a la función OnDraw se pasa un constructor CPaintDC previamente preparado (a través de OnPrepareDC) y simplemente se dibuja ahí. El marco lo destruye y el contexto de dispositivo subyacente se libera para Windows después de la devolución de la llamada a la función OnDraw.

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

Los objetos CMetaFileDC encapsulan el dibujo en un metarchivo de Windows. En este caso, a diferencia de CPaintDC que se pasa a OnDraw, debe llamar usted mismo a OnPrepareDC.

Dibujo con el mouse

La mayoría de los dibujos en un programa de marco (y, por tanto, la mayoría del trabajo de contexto de dispositivo) se realiza en la función de miembro OnDraw de 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 que se llame a OnDraw.

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

Qué más quieres saber

Consulte también

Objetos de ventana