Condividi tramite


Struttura ATL_DRAWINFO

Contiene informazioni utilizzate per il rendering in varie destinazioni, ad esempio una stampante, un metafile o un controllo ActiveX.

Sintassi

struct ATL_DRAWINFO {
    UINT cbSize;
    DWORD dwDrawAspect;
    LONG lindex;
    DVTARGETDEVICE* ptd;
    HDC hicTargetDev;
    HDC hdcDraw;
    LPCRECTL prcBounds;
    LPCRECTL prcWBounds;
    BOOL bOptimize;
    BOOL bZoomed;
    BOOL bRectInHimetric;
    SIZEL ZoomNum;
    SIZEL ZoomDen;
};

Membri

cbSize
Dimensione della struttura, in byte.

dwDrawAspect
Specifica il modo in cui deve essere rappresentata la destinazione. Le rappresentazioni possono includere contenuto, un'icona, un'anteprima o un documento stampato. Per un elenco dei valori possibili, vedere DVASPECT e DVASPECT2.

lindex
Parte della destinazione di interesse per l'operazione di disegno. L'interpretazione varia a seconda del valore nel dwDrawAspect membro.

ptd
Puntatore a una struttura DVTARGETDEVICE che consente ottimizzazioni del disegno a seconda dell'aspetto specificato. Si noti che gli oggetti e i contenitori più recenti che supportano interfacce di disegno ottimizzate supportano anche questo membro. Gli oggetti e i contenitori meno recenti che non supportano interfacce di disegno ottimizzate specificano sempre NULL per questo membro.

hicTargetDev
Contesto delle informazioni per il dispositivo di destinazione a ptd cui punta da cui l'oggetto può estrarre le metriche del dispositivo e testare le funzionalità del dispositivo. Se ptd è NULL, l'oggetto deve ignorare il valore nel hicTargetDev membro.

hdcDraw
Contesto del dispositivo su cui disegnare. Per un oggetto senza finestra, il hdcDraw membro è in MM_TEXT modalità di mapping con le coordinate logiche corrispondenti alle coordinate client della finestra contenitore. Inoltre, il contesto del dispositivo deve trovarsi nello stesso stato di quello normalmente passato da un WM_PAINT messaggio.

prcBounds
Puntatore a una struttura RECTL che specifica il rettangolo su hdcDraw e in cui deve essere disegnato l'oggetto. Questo membro controlla il posizionamento e l'estensione dell'oggetto. Questo membro deve essere NULL per disegnare un oggetto attivo sul posto senza finestra. In ogni altra situazione, NULL non è un valore legale e dovrebbe generare un E_INVALIDARG codice di errore. Se il contenitore passa un valore non NULL a un oggetto senza finestra, l'oggetto deve eseguire il rendering dell'aspetto richiesto nel contesto di dispositivo e nel rettangolo specificati. Un contenitore può richiedere questo oggetto da un oggetto senza finestra per eseguire il rendering di una seconda visualizzazione non attiva dell'oggetto o per stampare l'oggetto.

prcWBounds
Se hdcDraw è un contesto di dispositivo metafile (vedere GetDeviceCaps in Windows SDK), si tratta di un puntatore a una RECTL struttura che specifica il rettangolo di delimitazione nel metafile sottostante. La struttura del rettangolo contiene l'extent della finestra e l'origine della finestra. Questi valori sono utili per disegnare metafile. Il rettangolo indicato da prcBounds è annidato all'interno di questo prcWBounds rettangolo; si trovano nello stesso spazio delle coordinate.

bOptimize
Diverso da zero se il disegno del controllo deve essere ottimizzato, in caso contrario 0. Se il disegno è ottimizzato, lo stato del contesto di dispositivo viene ripristinato automaticamente al termine del rendering.

bZoomed
Diverso da zero se la destinazione ha un fattore di zoom, in caso contrario 0. Il fattore di zoom viene archiviato in ZoomNum.

bRectInHimetric
Diverso da zero se le dimensioni di prcBounds sono in HIMETRIC, in caso contrario 0.

ZoomNum
Larghezza e altezza del rettangolo in cui viene eseguito il rendering dell'oggetto. Il fattore di zoom lungo l'asse x (la proporzione delle dimensioni naturali dell'oggetto fino all'estensione corrente) della destinazione è il valore di ZoomNum.cx diviso per il valore di ZoomDen.cx. Il fattore di zoom lungo l'asse y viene ottenuto in modo simile.

ZoomDen
Larghezza e altezza effettive della destinazione.

Osservazioni:

L'utilizzo tipico di questa struttura è il recupero di informazioni durante il rendering dell'oggetto di destinazione. Ad esempio, è possibile recuperare valori da ATL_DRAWINFO all'interno dell'overload di CComControlBase::OnDrawAdvanced.

Questa struttura archivia le informazioni pertinenti usate per eseguire il rendering dell'aspetto di un oggetto per il dispositivo di destinazione. Le informazioni fornite possono essere utilizzate nel disegno sullo schermo, su una stampante o anche su un metafile.

Requisiti

Intestazione: atlctl.h

Vedi anche

Classi e struct
IViewObject::D raw
CComControlBase::OnDrawAdvanced