Compartir a través de


Mostrar contextos de dispositivo

Una aplicación obtiene un controlador de dominio para mostrar llamando a la función BeginPaint, GetDCo función GetDCEx e identificando la ventana en la que aparecerá la salida correspondiente. Normalmente, una aplicación obtiene un controlador de dominio para mostrar solo cuando debe dibujar en el área cliente. Sin embargo, se puede obtener un de contexto de dispositivo de ventana de mediante una llamada a la funcióngetWindowDC. Cuando la aplicación haya terminado de dibujar, debe liberar el controlador de dominio llamando a la funciónEndPaint deo ReleaseDC.

Hay cinco tipos de controladores de dominio para pantallas de vídeo:

  • Clase
  • Común
  • Privado
  • Ventana
  • Padre

Contextos de dispositivo de clase

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

Contextos de dispositivo comunes

los contextos de dispositivo comunes se muestran los controladores de dominio mantenidos en una caché especial por parte del sistema. Los contextos de dispositivo comunes se usan 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 objetos, atributos y modos predeterminados. Las operaciones de dibujo realizadas por la aplicación usan 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 modo nuevo.

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

Contextos de dispositivo privado

contextos de dispositivo privado se muestran controladores de dominio que, a diferencia de los contextos comunes del dispositivo, conservan los cambios en los datos predeterminados incluso después de que una aplicación los publique. Los contextos de dispositivo privado se usan en aplicaciones que realizan numerosas operaciones de dibujo, como aplicaciones de diseño asistido por ordenador (CAD), aplicaciones de publicación de escritorio, aplicaciones de dibujo y pintura, etc. Los contextos de dispositivo privado no forman parte de la memoria caché del sistema y, por lo tanto, no se deben liberar 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 estilo miembro del 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 GetDC, GetDCExo función BeginPaint una vez para obtener un identificador que identifica un contexto de dispositivo privado. La aplicación puede seguir usando este identificador (y el controlador de dominio asociado) hasta que elimine la ventana creada con esta clase. El sistema conserva los cambios en los objetos gráficos y sus atributos, o los modos gráficos 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 lugar de una ventana, incluido el área no cliente. Normalmente, las aplicaciones que procesan los mensajes de WM_NCPAINT y WM_NCACTIVATE para ventanas con áreas no cliente personalizadas suelen usar contextos de dispositivo de ventanas. 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 para una ventana. Normalmente, una aplicación usa contextos de dispositivo primarios para acelerar el dibujo de las ventanas de control sin necesidad de un contexto de dispositivo privado o de clase. Por ejemplo, el sistema usa contextos de dispositivo primarios para presionar y editar controles. Los contextos de dispositivo primarios están diseñados para su uso solo con ventanas secundarias, nunca con ventanas de nivel superior o emergentes. Para obtener más información; consulte contextos de dispositivo para mostrar primarios.