IDCompositionDesktopDevice::CreateSurfaceFromHwnd 方法 (dcomp.h)

创建一个包装器对象,该对象表示分层窗口的光栅化,并且可以与用于合成的视觉对象相关联。

语法

HRESULT CreateSurfaceFromHwnd(
  [in]  HWND     hwnd,
  [out] IUnknown **surface
);

参数

[in] hwnd

要为其创建包装的分层窗口的句柄。 使用 CreateWindowEx 函数创建窗口时指定WS_EX_LAYERED,或者在创建窗口后通过 SetWindowLong 设置WS_EX_LAYERED来创建分层窗口。

[out] surface

新的合成图面对象。 此参数不能为 NULL。

返回值

如果函数成功,则返回S_OK。 否则,将返回 HRESULT 错误代码。 有关错误代码列表,请参阅 DirectComposition 错误代码。

注解

可以在调用 IDCompositionVisual::SetContent 方法时使用 surface 指针来设置一个或多个视觉对象的内容。 设置内容后,视觉对象将编写指定分层窗口的内容,只要窗口是分层的。 如果取消窗口的图层,则窗口内容将从合成树的输出中消失。 如果稍后重新分层窗口,只要窗口内容仍与视觉对象关联,该窗口内容将重新显示。 如果调整窗口的大小,将重新组合受影响的视觉对象。

窗口的内容不会缓存超过窗口的生存期。 也就是说,如果窗口被销毁,受影响的视觉对象将停止撰写窗口。

如果将窗口移出屏幕或调整为零,系统将停止撰写这些视觉对象的内容。 当需要隐藏原始窗口,同时允许系统继续撰写视觉对象的内容时,应使用带有 DWMWA_CLOAK 标志的 DwmSetWindowAttribute 函数来“遮盖”分层子窗口。

要求

要求
目标平台 Windows
标头 dcomp.h

另请参阅

IDCompositionDesktopDevice

IDCompositionVisual::SetContent