Mostrar contextos de dispositivo

Una aplicación obtiene un controlador de dominio de visualización mediante una llamada a la función BeginPaint, GetDCo GetDCEx e identifica la ventana en la que aparecerá el resultado correspondiente. Normalmente, una aplicación obtiene un controlador de dominio de visualización solo cuando se debe dibujar en el área de cliente. Sin embargo, puede obtener un contexto de dispositivo de ventana mediante una llamada a la función GetWindowDC . Cuando finaliza el dibujo de la aplicación, debe liberar el controlador de dominio mediante una llamada a la función EndPaint o ReleaseDC .

Hay cinco tipos de controladores de DC para presentaciones de vídeo:

  • Clase
  • Comunes
  • Private
  • Periodo
  • Parent

Contextos de dispositivo de clase

Los contextos de dispositivo de clase se admiten estrictamente por compatibilidad con las versiones de 16 bits de Windows. Al escribir la aplicación, evite usar el contexto de dispositivo de clase. en su lugar, use un contexto de dispositivo privado.

Contextos de dispositivo comunes

Los contextos de dispositivo comunes son los controladores de dispositivos que el sistema mantiene en una memoria caché especial. Los contextos de dispositivo comunes se utilizan en aplicaciones que realizan operaciones de dibujo poco frecuentes. Antes de que el sistema devuelva el identificador de controlador de dominio, inicializa el contexto de dispositivo común con los objetos, atributos y modos predeterminados. Cualquier operación de dibujo realizada por la aplicación utiliza estos valores predeterminados, a menos que se llame a una de las funciones GDI para seleccionar un nuevo objeto, cambiar los atributos de un objeto existente o seleccionar un nuevo modo.

Dado que solo existe un número limitado de contextos de dispositivo comunes, una aplicación debe liberarlos una vez que haya terminado de dibujar. Cuando la aplicación libera un contexto de dispositivo común, se pierden los cambios realizados en los datos predeterminados.

Contextos de dispositivo privados

Los contextos de dispositivo privados son controladores de eventos que, a diferencia de los contextos de dispositivos comunes, conservan los cambios en los datos predeterminados incluso después de que una aplicación los libere. Los contextos de dispositivo privados se usan en aplicaciones que realizan numerosas operaciones de dibujo, como aplicaciones de diseño asistido por PC (CAD), aplicaciones de publicación de escritorio, aplicaciones de dibujo y pintado, etc. Los contextos de dispositivos privados no forman parte de la memoria caché del sistema y, por tanto, no es necesario liberarlos después del uso. El sistema quita automáticamente un contexto de dispositivo privado después de que se haya destruido la última ventana de esa clase.

Una aplicación crea un contexto de dispositivo privado especificando primero el _ estilo de clase de ventana CS OWNDC cuando inicializa el miembro de estilo de la estructura WNDCLASS y llama a la función RegisterClass . (Para obtener más información sobre las clases de ventana, vea clases de ventana).

Después de crear una ventana con el _ estilo CS OWNDC, una aplicación puede llamar a la función GetDC, GetDCExo BeginPaint una vez para obtener un identificador que identifique un contexto de dispositivo privado. La aplicación puede seguir usando este identificador (y el controlador de dominio asociado) hasta que se elimina la ventana creada con esta clase. Los cambios realizados en los objetos gráficos y sus atributos, o en los modos gráficos se retienen en el sistema hasta que se elimina la ventana.

Contextos de dispositivo de ventana

Un contexto de dispositivo de ventana permite a una aplicación dibujar en cualquier parte de una ventana, incluido el área no cliente. Los contextos de dispositivo de ventana suelen usarse en aplicaciones que procesan los mensajes de WM _ NCPAINT y WM _ NCACTIVATE para Windows con áreas no cliente personalizadas. No se recomienda usar un contexto de dispositivo de ventana para ningún otro propósito. Para obtener más información, vea GetWindowDC.

Contextos de dispositivo primarios

Un contexto de dispositivo primario permite a una aplicación minimizar el tiempo necesario para configurar la región de recorte de una ventana. Normalmente, una aplicación usa contextos de dispositivo primarios para acelerar el dibujo de ventanas de control sin necesidad de un contexto de dispositivo privado o de clase. Por ejemplo, el sistema utiliza contextos de dispositivo primarios para los controles de botón de control y edición. Los contextos de dispositivos primarios están pensados para usarse solo con ventanas secundarias, nunca con ventanas emergentes o de nivel superior. Para obtener más información, vea contextos de dispositivo de pantalla primaria.