Compartir a través de


DVASPECT2 enumeración (ocidl.h)

Especifica nuevos aspectos de dibujo usados para optimizar el proceso de dibujo.

Syntax

typedef enum tagDVASPECT2 {
  DVASPECT_OPAQUE = 16,
  DVASPECT_TRANSPARENT = 32
} DVASPECT2;

Constantes

 
DVASPECT_OPAQUE
Valor: 16
Representa las partes opacas y fáciles de recortar de un objeto. Los objetos pueden o no admitir este aspecto.
DVASPECT_TRANSPARENT
Valor: 32
Representa las partes transparentes o irregulares de en el objeto, normalmente partes costosas o imposibles de recortar. Los objetos pueden o no admitir este aspecto.

Comentarios

Para admitir optimizaciones de dibujo para reducir el parpadeo, un objeto debe poder dibujar y devolver información sobre tres aspectos independientes de sí mismo.

Aspecto Descripción
DVASPECT_CONTENT Especifica todo el contenido de un objeto. Todos los objetos deben admitir este aspecto.
DVASPECT_OPAQUE Representa las partes opacas y fáciles de recortar de un objeto. Los objetos pueden o no admitir este aspecto.
DVASPECT_TRANSPARENT Representa las partes transparentes o irregulares de en el objeto, normalmente partes costosas o imposibles de recortar. Los objetos pueden o no admitir este aspecto.
 

El contenedor puede determinar cuál de estos aspectos de dibujo admite un objeto llamando al nuevo método IViewObjectEx::GetViewStatus. Los bits individuales devuelven información sobre qué aspectos se admiten. Si un objeto no admite la interfaz IViewObjectEx , se supone que solo admite DVASPECT_CONTENT.

Dependiendo de los aspectos admitidos, el contenedor puede pedir al objeto que se dibuje solo durante el paso frontal hacia atrás, el retroceso solo al paso frontal, o ambos. Los distintos casos posibles son:

  • Los objetos que admiten solo DVASPECT_CONTENT deben dibujarse durante el retroceso al paso frontal, con todas las partes opacas de cualquier objeto superpuesto recortado. Dado que todos los objetos deben admitir este aspecto, un contenedor no preocupado por el parpadeo ,quizás porque está dibujando en un mapa de bits fuera de la pantalla, puede optar por dibujar todos los objetos de esa manera y omitir el paso frontal hacia atrás.
  • Es posible que se pida a los objetos que admiten DVASPECT_OPAQUE dibujar este aspecto durante el paso frontal hacia atrás. El contenedor es responsable de recortar las regiones opacas del objeto antes de pintar cualquier otro objeto detrás de él.
  • Es posible que se pida a los objetos que admiten DVASPECT_TRANSPARENT dibujar este aspecto durante la parte posterior al paso frontal. El contenedor es responsable de recortar partes opacas de objetos superpuestos antes de permitir que un objeto dibuje este aspecto.
Incluso cuando se admiten DVASPECT_OPAQUE y DVASPECT_TRANSPARENT, el contenedor puede usar estos aspectos o no. En concreto, si está pintando en un mapa de bits fuera de la pantalla y, por lo tanto, no tiene en cuenta el parpadeo, el contenedor puede usar DVASPECT_CONTENT y un dibujo de un solo paso. Sin embargo, en un dibujo de dos pasos, si el contenedor usa DVASPECT_OPAQUE durante el paso frontal al retroceso, debe usar DVASPECT_TRANSPARENT durante la parte posterior al paso frontal para completar la representación del objeto.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado ocidl.h

Consulte también

IViewObject::Draw