Condividi tramite


enumerazione DVASPECT2 (ocidl.h)

Specifica nuovi aspetti di disegno usati per ottimizzare il processo di disegno.

Sintassi

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

Costanti

 
DVASPECT_OPAQUE
Valore: 16
Rappresenta le parti opache e facili da ritagliare di un oggetto. Gli oggetti possono o non supportare questo aspetto.
DVASPECT_TRANSPARENT
Valore: 32
Rappresenta le parti trasparenti o irregolari dell'oggetto, in genere parti costose o impossibili da ritagliare. Gli oggetti possono o non supportare questo aspetto.

Commenti

Per supportare le ottimizzazioni di disegno per ridurre il flicker, un oggetto deve essere in grado di disegnare e restituire informazioni su tre aspetti separati di se stesso.

Aspetto Descrizione
DVASPECT_CONTENT Specifica l'intero contenuto di un oggetto. Tutti gli oggetti devono supportare questo aspetto.
DVASPECT_OPAQUE Rappresenta le parti opache e facili da ritagliare di un oggetto. Gli oggetti possono o non supportare questo aspetto.
DVASPECT_TRANSPARENT Rappresenta le parti trasparenti o irregolari dell'oggetto, in genere parti costose o impossibili da ritagliare. Gli oggetti possono o non supportare questo aspetto.
 

Il contenitore può determinare quale di questi aspetti di disegno supporta un oggetto chiamando il nuovo metodo IViewObjectEx::GetViewStatus. I singoli bit restituiscono informazioni sugli aspetti supportati. Se un oggetto non supporta l'interfaccia IViewObjectEx , si presuppone che supporti solo DVASPECT_CONTENT.

A seconda di quali aspetti sono supportati, il contenitore può chiedere all'oggetto di disegnare se stesso durante il passaggio front-to-back solo, il retro al passaggio anteriore o entrambi. I vari casi possibili sono:

  • Gli oggetti che supportano solo DVASPECT_CONTENT devono essere disegnati durante il passaggio indietro al passaggio anteriore, con tutte le parti opache di qualsiasi oggetto sovrapposto ritagliato fuori. Poiché tutti gli oggetti devono supportare questo aspetto, un contenitore non è preoccupato per la flickering , forse perché è disegno in una bitmap offscreen, può scegliere di disegnare tutti gli oggetti in questo modo e ignorare il passaggio indietro anteriore.
  • Gli oggetti che supportano DVASPECT_OPAQUE possono essere richiesti per disegnare questo aspetto durante il passaggio anteriore. Il contenitore è responsabile del ritaglio delle aree opache dell'oggetto prima di disegnare qualsiasi altro oggetto dietro di esso.
  • Gli oggetti che supportano DVASPECT_TRANSPARENT possono essere richiesti per disegnare questo aspetto durante il passaggio anteriore. Il contenitore è responsabile del ritaglio di parti opache di oggetti sovrapposti prima di consentire a un oggetto di disegnare questo aspetto.
Anche quando DVASPECT_OPAQUE e DVASPECT_TRANSPARENT sono supportati, il contenitore è libero di usare questi aspetti o meno. In particolare, se è dipinti in una bitmap offscreen e di conseguenza non è preoccupato di flicker, il contenitore può usare DVASPECT_CONTENT e un disegno a un solo passaggio. Tuttavia, in un disegno a due passaggi, se il contenitore usa DVASPECT_OPAQUE durante il passaggio indietro front-to-back, deve usare DVASPECT_TRANSPARENT durante il passaggio indietro per completare il rendering dell'oggetto.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Intestazione ocidl.h

Vedi anche

IViewObject::D raw