IDirectDrawSurface7::SetClipper 方法 (ddraw.h)
将剪辑器对象附加到此图面或从中删除一个对象。
语法
HRESULT SetClipper(
[in] LPDIRECTDRAWCLIPPER unnamedParam1
);
参数
[in] unnamedParam1
指向要附加到 DirectDrawSurface 对象的 DirectDrawClipper 对象的 IDirectDrawClipper 接口的指针。 如果将此参数设置为 NULL,则当前 DirectDrawClipper 对象将分离。
返回值
如果方法成功,则返回值DD_OK。
如果失败,方法可能会返回以下错误值之一:
- DDERR_INVALIDOBJECT
- DDERR_INVALIDPARAMS
- DDERR_INVALIDSURFACETYPE
- DDERR_NOCLIPPERATTACHED
备注
首次将剪辑器设置为图面时, SetClipper 会递增剪辑器的引用计数;后续调用不会影响剪辑器的引用计数。 如果将 NULL 作为 lpDDClipper 参数传递,将从图面中删除剪辑器,并且剪辑器的引用计数将递减。 如果不删除剪裁器,当表面本身松开时,图面会自动释放对剪裁器的引用。 根据 COM 规则,当不再需要对象时,应用程序必须释放它保留给剪辑器的任何引用。
SetClipper 主要用于覆盖在主图面上或位点到主图面的图面。 但是,它可以在任何表面上使用。 附加 DirectDrawClipper 对象并与之关联剪辑列表后,DirectDrawClipper 对象将用于 IDirectDrawSurface7::Blt、 IDirectDrawSurface7::BltBatch 和 IDirectDrawSurface7::UpdateOverlay 操作(涉及父 DirectDrawSurface 对象)。 SetClipper 还可以分离 DirectDrawSurface 对象的当前 DirectDrawClipper 对象。
要求
目标平台 | Windows |
标头 | ddraw.h |
Library | Ddraw.lib |
DLL | Ddraw.dll |