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 |