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 ZoomNum
gespeichert.
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