ATL_DRAWINFO – struktura
Obsahuje informace používané k vykreslování do různých cílů, jako je tiskárna, metasoubor nebo ovládací prvek ActiveX.
Syntaxe
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;
};
Členové
cbSize
Velikost struktury v bajtech.
dwDrawAspect
Určuje, jak má být cíl reprezentován. Reprezentace může obsahovat obsah, ikonu, miniaturu nebo vytištěný dokument. Seznam možných hodnot najdete v tématu DVASPECT a DVASPECT2.
lindex
Část cíle, která je pro operaci kreslení zajímavá. Jeho interpretace se liší v závislosti na hodnotě člena dwDrawAspect
.
ptd
Ukazatel na strukturu DVTARGETDEVICE , která umožňuje optimalizaci výkresu v závislosti na zadaném aspektu. Všimněte si, že novější objekty a kontejnery, které podporují optimalizovaná rozhraní kreslení, podporují i tohoto člena. Starší objekty a kontejnery, které nepodporují optimalizovaná rozhraní kreslení, vždy určují hodnotu NULL pro tohoto člena.
hicTargetDev
Kontext informací pro cílové zařízení odkazované na to, ze ptd
kterého objekt může extrahovat metriky zařízení a otestovat schopnosti zařízení. Pokud ptd
je null, objekt by měl ignorovat hodnotu člena hicTargetDev
.
hdcDraw
Kontext zařízení, na kterém chcete kreslit. U objektu hdcDraw
bez oken je člen v MM_TEXT
režimu mapování s jeho logickými souřadnicemi odpovídajícími souřadnicemi klienta obsahujícího okna. Kontext zařízení by měl být navíc ve stejném stavu jako kontext zařízení, který WM_PAINT
obvykle předává zpráva.
prcBounds
Ukazatel na strukturu RECTL určující obdélník, hdcDraw
na kterém má být objekt nakreslen. Tento člen řídí umístění a roztažení objektu. Tento člen by měl mít hodnotu NULL pro vykreslení aktivního objektu bez oken. V každé jiné situaci null není právní hodnota a měla by vést k chybě s kódem E_INVALIDARG
chyby. Pokud kontejner předá objektu bez hodnoty NULL, měl by objekt vykreslit požadovaný aspekt do zadaného kontextu zařízení a obdélníku. Kontejner si to může vyžádat z objektu bez oken k vykreslení druhého, neaktivního zobrazení objektu nebo k vytištění objektu.
prcWBounds
Pokud hdcDraw
je kontext zařízení metasouboru (viz GetDeviceCaps v sadě Windows SDK), jedná se o ukazatel na RECTL
strukturu určující ohraničující obdélník v podkladovém metasouboru. Struktura obdélníku obsahuje rozsah okna a původ okna. Tyto hodnoty jsou užitečné pro kreslení metasouborů. Obdélník označený tímto obdélníkem prcBounds
je vnořený uvnitř tohoto prcWBounds
obdélníku; jsou ve stejném souřadnicovém prostoru.
bOptimize
Nenulové, pokud je výkres ovládacího prvku optimalizovaný, jinak 0. Pokud je výkres optimalizovaný, stav kontextu zařízení se po dokončení vykreslování automaticky obnoví.
bZoomed
Nenulové, pokud má cíl faktor přiblížení, jinak 0. Faktor přiblížení je uložen v ZoomNum
souboru .
bRectInHimetric
Nenulové, pokud jsou rozměry prcBounds
v HIMETRICe, jinak 0.
ZoomNum
Šířka a výška obdélníku, do kterého se objekt vykresluje. Faktor přiblížení podél osy x (poměr přirozené velikosti objektu v aktuálním rozsahu) cíle je hodnota ZoomNum.cx
dělená hodnotou ZoomDen.cx
. Faktor přiblížení podél osy y se dosahuje podobným způsobem.
ZoomDen
Skutečná šířka a výška cíle.
Poznámky
Typické použití této struktury by bylo načtení informací během vykreslování cílového objektu. Můžete například načíst hodnoty z ATL_DRAWINFO uvnitř přetížení CComControlBase::OnDrawAdvanced.
Tato struktura ukládá relevantní informace použité k vykreslení vzhledu objektu pro cílové zařízení. Poskytnuté informace lze použít při kreslení na obrazovku, tiskárnu nebo dokonce metasoubor.
Požadavky
Hlavička: atlctl.h
Viz také
Třídy a struktury
IViewObject::D raw
CComControlBase::OnDrawAdvanced