Partager via


énumération DVASPECT2 (ocidl.h)

Spécifie les nouveaux aspects de dessin utilisés pour optimiser le processus de dessin.

Syntax

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

Constantes

 
DVASPECT_OPAQUE
Valeur : 16
Représente les parties opaques et faciles à découper d’un objet. Les objets peuvent ou non prendre en charge cet aspect.
DVASPECT_TRANSPARENT
Valeur : 32
Représente les parties transparentes ou irrégulières de sur l’objet, généralement des parties qui sont coûteuses ou impossibles à découper. Les objets peuvent ou non prendre en charge cet aspect.

Remarques

Pour prendre en charge les optimisations de dessin afin de réduire le scintillement, un objet doit être en mesure de dessiner et de retourner des informations sur trois aspects distincts de lui-même.

Aspect Description
DVASPECT_CONTENT Spécifie l’intégralité du contenu d’un objet. Tous les objets doivent prendre en charge cet aspect.
DVASPECT_OPAQUE Représente les parties opaques et faciles à découper d’un objet. Les objets peuvent ou non prendre en charge cet aspect.
DVASPECT_TRANSPARENT Représente les parties transparentes ou irrégulières de sur l’objet, généralement des parties qui sont coûteuses ou impossibles à découper. Les objets peuvent ou non prendre en charge cet aspect.
 

Le conteneur peut déterminer les aspects de dessin pris en charge par un objet en appelant la nouvelle méthode IViewObjectEx ::GetViewStatus. Les bits individuels retournent des informations sur les aspects pris en charge. Si un objet ne prend pas en charge l’interface IViewObjectEx , il est supposé prendre en charge uniquement DVASPECT_CONTENT.

Selon les aspects pris en charge, le conteneur peut demander à l’objet de dessiner lui-même pendant la passe avant-arrière uniquement, l’arrière-à-l’avant passe uniquement, ou les deux. Les différents cas possibles sont les suivants :

  • Les objets prenant en charge uniquement DVASPECT_CONTENT doivent être dessinés pendant le passage de l’arrière à l’avant, avec toutes les parties opaques des objets qui se chevauchent coupées. Étant donné que tous les objets doivent prendre en charge cet aspect, un conteneur non préoccupé par le scintillement (peut-être parce qu’il dessine dans une bitmap hors écran) peut choisir de dessiner tous les objets de cette façon et d’ignorer la passe avant à l’arrière.
  • Les objets qui supportent DVASPECT_OPAQUE peuvent être invités à dessiner cet aspect pendant le passage avant-arrière. Le conteneur est chargé de découper les zones opaques de l’objet avant de peindre tout autre objet derrière lui.
  • Les objets qui supportent DVASPECT_TRANSPARENT peuvent être invités à dessiner cet aspect pendant le passage de l’arrière à l’avant. Le conteneur est chargé de découper les parties opaques des objets qui se chevauchent avant de laisser un objet dessiner cet aspect.
Même lorsque DVASPECT_OPAQUE et DVASPECT_TRANSPARENT sont pris en charge, le conteneur est libre d’utiliser ces aspects ou non. En particulier, s’il est peint dans une bitmap hors écran et n’est donc pas préoccupé par le scintillement, le conteneur peut utiliser DVASPECT_CONTENT et un dessin en une seule passe. Toutefois, dans un dessin à deux étapes, si le conteneur utilise DVASPECT_OPAQUE pendant la passe avant-arrière, il doit utiliser DVASPECT_TRANSPARENT pendant le passage retour à l’avant pour terminer le rendu de l’objet.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
En-tête ocidl.h

Voir aussi

IViewObject ::D raw