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 方法可讓容器在一個快速呼叫中取得所有繪圖層面的相關信息。 一般而言,支援的繪圖層面集合不應該隨著時間而變更。 不過,如果這不是這種情況,對象應該使用 IAdviseSinkEx::OnViewStatusChange 通知其容器。

支援哪些繪圖層面與物件不透明、部分透明或完全透明無關。 特別是,不支援DVASPECT_TRANSPARENT的透明對象,應該在使用DVASPECT_CONTENT正確繪製回前階段。 不過,這可能會導致更閃爍。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 ocidl.h

另請參閱

IAdviseSinkEx::OnViewStatusChange

IViewObjectEx

VIEWSTATUS