Compartir a través de


Contextos comunes del dispositivo de visualización

Se usa un contexto de dispositivo común para dibujar en el área cliente de la ventana. El sistema proporciona de forma predeterminada un contexto de dispositivo común para cualquier ventana cuya clase de ventana no especifique explícitamente un estilo de contexto de dispositivo para mostrar. Los contextos de dispositivo comunes se suelen usar con ventanas que se pueden dibujar sin cambios exhaustivos en los atributos de contexto del dispositivo. Los contextos de dispositivo comunes son cómodos porque no requieren memoria adicional o recursos del sistema, pero pueden ser inconvenientes si la aplicación debe configurar muchos atributos antes de usarlos.

El sistema recupera todos los contextos de dispositivo comunes de la caché de contexto del dispositivo para mostrar. Una aplicación puede recuperar un contexto de dispositivo común inmediatamente después de crear la ventana. Dado que el contexto de dispositivo común procede de la memoria caché, la aplicación siempre debe liberar el contexto del dispositivo lo antes posible después del dibujo. Una vez liberado el contexto de dispositivo común, ya no es válido y la aplicación no debe intentar dibujar con él. Para volver a dibujar, la aplicación debe recuperar un nuevo contexto de dispositivo común y continuar recuperando y liberando un contexto de dispositivo común cada vez que dibuja en la ventana. Si la aplicación recupera el identificador de contexto del dispositivo mediante la función GetDC , debe usar la función ReleaseDC para liberar el identificador. Del mismo modo, para cada función BeginPaint , la aplicación debe usar una función EndPaint correspondiente.

Cuando la aplicación recupera el contexto del dispositivo, el sistema ajusta el origen para que se alinee con la esquina superior izquierda del área cliente. También establece la región de recorte para que la salida al contexto del dispositivo se recorte en el área de cliente. Se recorta cualquier salida que aparezca fuera del área de cliente. Si la aplicación recupera el contexto de dispositivo común mediante BeginPaint, el sistema también incluye la región de actualización en la región de recorte para restringir aún más la salida.

Cuando una aplicación libera un contexto de dispositivo común, el sistema restaura los valores predeterminados para los atributos del contexto del dispositivo. Una aplicación que modifique los valores de atributo debe hacerlo cada vez que recupera un contexto de dispositivo común. Al liberar el contexto del dispositivo se liberan los objetos de dibujo que la aplicación puede haber seleccionado, por lo que la aplicación no necesita liberar estos objetos antes de liberar el contexto del dispositivo. En todos los casos, una aplicación nunca debe suponer que el contexto de dispositivo común conserva las selecciones no predeterminadas después de su lanzamiento.