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_CONTENT 正确绘制不支持DVASPECT_TRANSPARENT的透明对象。 但是,这可能会导致更多的闪烁。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 ocidl.h

另请参阅

IAdviseSinkEx::OnViewStatusChange

IViewObjectEx

VIEWSTATUS