次の方法で共有


IViewObjectEx::GetViewStatus メソッド (ocidl.h)

オブジェクトの不透明度、およびサポートされている描画面に関する情報を取得します。

構文

HRESULT GetViewStatus(
  [out] DWORD *pdwStatus
);

パラメーター

[out] pdwStatus

ビューの状態へのポインター。 この情報は、 VIEWSTATUS 列挙値の組み合わせとして返されます。

戻り値

このメソッドは、成功したS_OKを返します。

注釈

描画プロセスを最適化するには、オブジェクトが不透明かどうか、およびオブジェクトの背景がソリッドかどうかを判断できる必要があります。 完全に不透明なオブジェクトで完全に覆われているオブジェクトを再描画する必要はありません。 たとえば、スクロールなどのその他の操作は、オブジェクトが不透明で背景が純色の場合にも高度に最適化できます。

IViewObjectEx::GetViewStatus メソッドは、オブジェクトが完全に不透明かどうか (VIEWSTATUS_OPAQUE ビット) と、その背景がソリッド (VIEWSTATUS_SOLIDBKGND ビット) かどうかを返します。 この情報は、時間の中で変更される可能性があります。 オブジェクトは、特定の時点で不透明であり、BackStyle プロパティの変更などのために、後で完全または部分的に透明になることがあります。 オブジェクトは、 IAdviseSinkEx::OnViewStatusChange を使用して変更されたときにサイトに通知する必要があります。これにより、サイトは高速アクセスのためにこの情報をキャッシュできます。

IViewObjectEx をサポートしていないオブジェクトは、常に透明と見なされます。

IViewObjectEx::GetViewStatus メソッドは、サポートされている側面を示すビットの組み合わせを返します。

特定の描画アスペクトがサポートされていない場合、描画アスペクトを入力パラメーターとして受け取るすべての IViewObjectEx メソッドは失敗し、E_INVALIDARGを返す必要があります。 IViewObjectEx::GetViewStatus メソッドを使用すると、コンテナーは 1 回のクイック呼び出しですべての描画側面に関する情報を取得できます。 通常、サポートされている描画面のセットは、時間と共に変更しないでください。 ただし、そうでない場合、オブジェクトは IAdviseSinkEx::OnViewStatusChange を使用してコンテナーに通知する必要があります。

どの描画面がサポートされているかは、オブジェクトが不透明であるか、部分的に透明であるか、完全に透明であるかに依存しません。 特に、DVASPECT_TRANSPARENTをサポートしていない透明なオブジェクトは、DVASPECT_CONTENTを使用して、背面から前面へのパス中に正しく描画する必要があります。 ただし、これによりちらつきが増える可能性があります。

要件

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

こちらもご覧ください

IAdviseSinkEx::OnViewStatusChange

IViewObjectEx

VIEWSTATUS