次の方法で共有


ATL_DRAWINFO 構造体

更新 : 2007 年 11 月

プリンタ、メタファイル、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 で指定された対象デバイスの情報コンテキスト。これに基づいてオブジェクトはデバイス メトリックを抽出し、デバイスの機能をテストします。ptdNULL の場合、オブジェクトは hicTargetDev メンバの値を無視します。

  • hdcDraw
    描画を行うデバイス コンテキスト。ウィンドウなしのオブジェクトの場合、hdcDraw メンバは、論理座標がウィンドウのクライアント座標と一致する MM_TEXT マップ モードに含まれます。また、デバイス コンテキストは、WM_PAINT メッセージによって通常渡されるのと同じ状態になります。

  • prcBounds
    オブジェクトを描画する、hdcDraw の四角形を指定する RECTL 構造体へのポインタ。このメンバは、オブジェクトの移動および伸縮を制御します。このメンバは、ウィンドウなしの、埋め込み先編集が有効になるオブジェクトを描画する場合は NULL にします。その他のすべての状況では、NULL は適切な値ではないため、E_INVALIDARG エラーが発生します。コンテナが NULL 以外の値をウィンドウなしのオブジェクトに渡した場合、オブジェクトは要求された外観を指定のデバイス コンテキストと四角形に対してレンダリングします。コンテナは、この動作をウィンドウなしのオブジェクトから要求して、オブジェクトの 2 番目の非アクティブなビューをレンダリングしたり、オブジェクトを印刷したりできます。

  • prcWBounds
    hdcDraw がメタファイル デバイス コンテキストの場合 (Windows SDK の「GetDeviceCaps」を参照)、この値は、基になるメタファイルに外接する四角形を指定する RECTL 構造体へのポインタ。四角形構造体には、ウィンドウのエクステントと原点が含まれます。これらの値は、メタファイルの描画に役立ちます。prcBounds によって示される四角形は、この prcWBounds 四角形の中で入れ子になっています。これらの四角形は同じ座標空間に存在します。

  • bOptimize
    コントロールの描画を最適化する場合は 0 以外、最適化しない場合は 0。描画を最適化する場合は、レンダリングを終了するとデバイス コンテキストの状態が自動的に復元されます。

  • bZoomed
    対象に縮尺がある場合は 0 以外、縮尺がない場合は 0。縮尺は ZoomNum 内に格納されます。

  • bRectInHimetric
    prcBounds の寸法が HIMETRIC 内に収まる場合は 0 以外、収まらない場合は 0。

  • ZoomNum
    オブジェクトがレンダリングされる四角形の幅と高さ。ターゲットの x 軸方向の縮尺 (オブジェクトの本来のサイズと現在のサイズの比率) は、ZoomNum.cx 値を ZoomDen.cx 値で除算した値です。y 軸方向の縮尺も同様の方法で取得できます。

  • ZoomDen
    対象の実際の幅と高さ。

解説

通常、この構造体は対象オブジェクトのレンダリング時の情報の取得に使用します。たとえば、CComControlBase::OnDrawAdvanced の独自のオーバーロード内の ATL_DRAWINFO から値を取得できます。

この構造体は、対象デバイスのオブジェクトの外観をレンダリングするために使用する関連情報を格納します。提供される情報は、画面、プリンタ、またはメタファイルに描画するときに使用できます。

必要条件

ヘッダー : atlctl.h

参照

参照

IViewObject::Draw

CComControlBase::OnDrawAdvanced

その他の技術情報

ATL 構造体