次の方法で共有


DVASPECT2列挙 (ocidl.h)

描画プロセスを最適化するために使用する新しい描画面を指定します。

構文

typedef enum tagDVASPECT2 {
  DVASPECT_OPAQUE = 16,
  DVASPECT_TRANSPARENT = 32
} DVASPECT2;

定数

 
DVASPECT_OPAQUE
値: 16
オブジェクトの一部をクリップしやすい不透明な部分を表します。 オブジェクトは、この側面をサポートする場合とサポートされない場合があります。
DVASPECT_TRANSPARENT
値: 32
オブジェクト上の の透明または不規則な部分を表します。通常、割り出しにコストがかかるか不可能な部分です。オブジェクトは、この側面をサポートする場合とサポートされない場合があります。

注釈

ちらつきを減らすために描画の最適化をサポートするには、オブジェクト自体の 3 つの異なる側面に関する情報を描画して返すことができる必要があります。

要素 説明
DVASPECT_CONTENT オブジェクトの内容全体を指定します。 すべてのオブジェクトがこの側面をサポートしている必要があります。
DVASPECT_OPAQUE オブジェクトの一部をクリップしやすい不透明な部分を表します。 オブジェクトは、この側面をサポートする場合とサポートされない場合があります。
DVASPECT_TRANSPARENT オブジェクト上の の透明または不規則な部分を表します。通常、割り出しにコストがかかるか不可能な部分です。オブジェクトは、この側面をサポートする場合とサポートされない場合があります。
 

コンテナーは、新しいメソッド IViewObjectEx::GetViewStatus を呼び出すことによって、オブジェクトがサポートするこれらの描画の側面を決定できます。 個々のビットは、サポートされている側面に関する情報を返します。 オブジェクトが IViewObjectEx インターフェイスをサポートしていない場合は、DVASPECT_CONTENTのみをサポートしていると見なされます。

サポートされている側面に応じて、コンテナーはオブジェクトに対して、前方から背面へのパスのみ、背面から前面へのパスのみ、またはその両方の間に描画するように求めることができます。 考えられるさまざまなケースは次のとおりです。

  • DVASPECT_CONTENTのみをサポートするオブジェクトは、重なり合うオブジェクトのすべての不透明な部分がクリップアウトされた状態で、背面から前面へのパスの間に描画する必要があります。すべてのオブジェクトがこの側面をサポートする必要があるため、ちらつきを気にしないコンテナー (オフスクリーン ビットマップで描画されている可能性があるため) は、すべてのオブジェクトをそのように描画し、前方から後方へのパスをスキップすることを選択できます。
  • DVASPECT_OPAQUEをサポートするオブジェクトは、前方から背面へのパス中にこの側面を描画するように求められる場合があります。 コンテナーは、オブジェクトの背後にあるオブジェクトをさらに描画する前に、オブジェクトの不透明な領域をクリッピングする役割を担います。
  • DVASPECT_TRANSPARENTをサポートするオブジェクトは、バックからフロント パスの間にこの側面を描画するように求められる場合があります。 コンテナーは、オブジェクトにこの側面を描画させる前に、重なり合うオブジェクトの不透明な部分をクリッピングする役割を担います。
DVASPECT_OPAQUEとDVASPECT_TRANSPARENTがサポートされている場合でも、コンテナーはこれらの側面を自由に使用できます。 特に、オフスクリーン ビットマップで描画していて、ちらつきを気にしない場合は、コンテナーで DVASPECT_CONTENT とワンパス描画のみを使用できます。 ただし、2 パス描画では、コンテナーがフロント からバック パスの間にDVASPECT_OPAQUEを使用する場合は、オブジェクトのレンダリングを完了するために、バック からフロント パスの間に DVASPECT_TRANSPARENT を使用する必要があります。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
Header ocidl.h

こちらもご覧ください

IViewObject::Draw