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 |