共用方式為


ATL_DRAWINFO 結構

包含用來轉譯至各種目標的資訊,例如印表機、中繼檔或 ActiveX 控制項。

語法

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

成員

cbSize
結構的大小,以位元組為單位。

dwDrawAspect
指定如何表示目標。 標記法可以包含內容、圖示、縮圖或列印檔案。 如需可能值的清單,請參閱 DVASPECT DVASPECT2

lindex
繪製作業感興趣的目標部分。 其解譯會根據成員中的 dwDrawAspect 值而有所不同。

ptd
DVTARGETDEVICE 結構的指標,可根據指定的層面啟用繪圖優化。 請注意,支援優化繪圖介面的較新物件和容器也支援這個成員。 不支援優化繪圖介面的舊物件和容器一律為此成員指定 Null。

hicTargetDev
指向目標裝置 ptd 的資訊內容,物件可以從中擷取裝置計量並測試裝置的功能。 如果 ptd 為 Null,物件應該忽略成員中的 hicTargetDev 值。

hdcDraw
要繪製的裝置內容。 如果是無視窗物件,成員 hdcDraw 會處於對應模式, MM_TEXT 其邏輯座標符合包含視窗的用戶端座標。 此外,裝置內容的狀態應該與訊息通常傳遞 WM_PAINT 的狀態相同。

prcBounds
RECTL 結構的指標,指定物件應該繪製所在的 hdcDraw 和 矩形。 這個成員會控制物件的位置和延展。 此成員應該是 Null,以繪製無視窗就地使用中物件。 在其他情況下,Null 不是合法的值,因此應該會產生 E_INVALIDARG 錯誤碼。 如果容器將非 Null 值傳遞至無視窗物件,物件應該會將要求的層面轉譯至指定的裝置內容和矩形。 容器可以從無視窗物件要求此專案,以轉譯物件的第二個非使用中檢視,或列印物件。

prcWBounds
如果 hdcDraw 是中繼檔裝置內容(請參閱 Windows SDK 中的 GetDeviceCaps ),這是指定基礎中繼檔中周框之結構的指標 RECTL 。 矩形結構包含視窗範圍和視窗原點。 這些值適用于繪製中繼檔。 所 prcBounds 指示的矩形會巢狀在此矩形內 prcWBounds ;它們位於相同的座標空間中。

bOptimize
如果要優化控制項的繪圖,則為非零,否則為 0。 如果繪圖已優化,當您完成轉譯時,會自動還原裝置內容的狀態。

bZoomed
如果目標具有縮放因數,則為非零,否則為 0。 縮放因數會儲存在 中 ZoomNum

bRectInHimetric
如果 的維度 prcBounds 位於 HIMETRIC 中,則為非零,否則為 0。

ZoomNum
呈現物件之矩形的寬度和高度。 沿著 X 軸的縮放因數(物件的自然大小與其目前範圍的比例)的目標是 除以 值 ZoomDen.cx 的值 ZoomNum.cx 。 沿著 Y 軸的縮放因數以類似的方式達成。

ZoomDen
目標的實際寬度和高度。

備註

此結構的一般用法是擷取目標物件轉譯期間的資訊。 例如,您可以從 CComControlBase::OnDrawAdvanced 的多載 內ATL_DRAWINFO擷取值。

此結構會儲存用來呈現目標裝置物件外觀的相關資訊。 提供的資訊可用於繪圖到螢幕、印表機,甚至是中繼檔。

需求

標頭: atlctl.h

另請參閱

類別和結構
IViewObject::D raw
CComControlBase::OnDrawAdvanced