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::BltIDirectDrawSurface7::BltBatchIDirectDrawSurface7::UpdateOverlay 操作(涉及父 DirectDrawSurface 对象)。 SetClipper 还可以分离 DirectDrawSurface 对象的当前 DirectDrawClipper 对象。

要求

   
目标平台 Windows
标头 ddraw.h
Library Ddraw.lib
DLL Ddraw.dll

请参阅

IDirectDrawSurface7