ATL_DRAWINFO-Struktur

Enthält Informationen zum Rendern auf verschiedene Ziele, z. B. einen Drucker, eine Metadatei oder ein ActiveX-Steuerelement.

Syntax

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;
};

Member

cbSize
Die Größe dieser Struktur in Byte.

dwDrawAspect
Gibt an, wie das Ziel dargestellt werden soll. Darstellungen können Inhalte, ein Symbol, eine Miniaturansicht oder ein gedrucktes Dokument enthalten. Eine Liste der möglichen Werte finden Sie unter DVASPECT und DVASPECT2.

lindex
Teil des Ziels, das für den Draw-Vorgang von Interesse ist. Die Interpretation variiert je nach Dem Wert im dwDrawAspect Element.

ptd
Zeiger auf eine DVTARGETDEVICE-Struktur , die Zeichnungsoptimierungen je nach angegebenem Aspekt ermöglicht. Beachten Sie, dass neuere Objekte und Container, die optimierte Zeichnungsschnittstellen unterstützen, auch dieses Element unterstützen. Ältere Objekte und Container, die keine optimierten Zeichnungsschnittstellen unterstützen, geben immer NULL für dieses Element an.

hicTargetDev
Informationskontext für das Zielgerät, auf das verwiesen wird, mit ptd dem das Objekt Gerätemetriken extrahieren und die Funktionen des Geräts testen kann. Ist ptd NULL, sollte das Objekt den Wert im hicTargetDev Element ignorieren.

hdcDraw
Der Gerätekontext, auf dem gezeichnet werden soll. Bei einem fensterlosen Objekt befindet sich das hdcDraw Element im MM_TEXT Zuordnungsmodus mit seinen logischen Koordinaten, die den Clientkoordinaten des enthaltenden Fensters entsprechen. Darüber hinaus sollte sich der Gerätekontext im gleichen Zustand befinden wie der, der normalerweise von einer WM_PAINT Nachricht übergeben wird.

prcBounds
Zeigen Sie auf eine RECTL-Struktur , die das Rechteck angibt hdcDraw und in dem das Objekt gezeichnet werden soll. Dieses Element steuert die Positionierung und Dehnung des Objekts. Dieses Element sollte NULL sein, um ein fensterloses aktives Objekt zu zeichnen. In jeder anderen Situation ist NULL kein rechtlicher Wert und sollte zu einem E_INVALIDARG Fehlercode führen. Wenn der Container einen Wert ungleich NULL an ein fensterloses Objekt übergibt, sollte das Objekt den angeforderten Aspekt in den angegebenen Gerätekontext und das Rechteck rendern. Ein Container kann dies von einem fensterlosen Objekt anfordern, um eine zweite, nicht aktive Ansicht des Objekts zu rendern oder das Objekt zu drucken.

prcWBounds
Wenn hdcDraw es sich um einen Kontext eines Metadateigeräts handelt (siehe GetDeviceCaps im Windows SDK), ist dies ein Zeiger auf eine RECTL Struktur, die das umgebende Rechteck in der zugrunde liegenden Metadatei angibt. Die Rechteckstruktur enthält die Fensterausdehnung und den Fensterursprung. Diese Werte sind nützlich für das Zeichnen von Metadateien. Das durch prcBounds dieses Rechteck angegebene Rechteck ist in diesem prcWBounds Rechteck geschachtelt; sie befinden sich im gleichen Koordinatenbereich.

bOptimize
Nonzero, wenn die Zeichnung des Steuerelements optimiert werden soll, andernfalls 0. Wenn die Zeichnung optimiert ist, wird der Zustand des Gerätekontexts automatisch wiederhergestellt, wenn Sie mit dem Rendern fertig sind.

bZoomed
Nonzero, wenn das Ziel einen Zoomfaktor aufweist, andernfalls 0. Der Zoomfaktor wird in ZoomNumgespeichert.

bRectInHimetric
Nonzero, wenn sich die Dimensionen prcBounds in HIMETRIC befinden, andernfalls 0.

ZoomNum
Die Breite und Höhe des Rechtecks, in das das Objekt gerendert wird. Der Zoomfaktor entlang der X-Achse (der Anteil der natürlichen Größe des Objekts in seinem aktuellen Umfang) des Ziels ist der Wert der ZoomNum.cx dividiert durch den Wert von ZoomDen.cx. Der Zoomfaktor entlang der Y-Achse wird auf ähnliche Weise erreicht.

ZoomDen
Die tatsächliche Breite und Höhe des Ziels.

Hinweise

Die typische Verwendung dieser Struktur wäre das Abrufen von Informationen beim Rendern des Zielobjekts. Sie können beispielsweise Werte aus ATL_DRAWINFO innerhalb Ihrer Überladung von CComControlBase::OnDrawAdvanced abrufen.

Diese Struktur speichert relevante Informationen, die zum Rendern der Darstellung eines Objekts für das Zielgerät verwendet werden. Die bereitgestellten Informationen können beim Zeichnen auf dem Bildschirm, einem Drucker oder sogar einer Metadatei verwendet werden.

Anforderungen

Header: atlctl.h

Siehe auch

Klassen und Strukturen
IViewObject::D raw
CComControlBase::OnDrawAdvanced