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 |