IDCompositionVisual2::SetOpacityMode 方法 (dcomp.h)

设置此视觉对象的不透明度模式。

语法

HRESULT SetOpacityMode(
  [in] DCOMPOSITION_OPACITY_MODE mode
);

参数

[in] mode

将视觉对象组合到屏幕时使用的不透明度模式。

返回值

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

注解

不透明度模式会影响效果组对象的不透明度属性如何影响可视子树的组成。 DirectComposition 支持两种不透明度模式:层模式和乘法模式。 在层模式下,每个可视子树都可以在逻辑上作为位图进行查看,该位图包含整个子树的不透明光栅化,然后应用了不透明度值。 这样,重叠的不透明表面会与子树的背景混合,但不相互混合。 相比之下,在乘法模式下,不透明度在组合时单独应用于每个图面,因此表面相互混合。 乘法模式比层模式快,并且如果可视化树包含完全不重叠的内容,则始终首选。 但是,乘法模式可能会为重叠元素生成意外的视觉结果。

默认情况下,视觉对象继承其父视觉对象的不透明度模式,后者可能会继承其父视觉对象的不透明度模式,依此类而论。 如果从未为视觉对象调用此方法,或者使用DCOMPOSITION_OPACITY_MODE_INHERIT调用此方法,则视觉对象将使用DCOMPOSITION_OPACITY_MODE_LAYER模式。 如果没有视觉对象设置不透明度模式,则整个可视化树的默认值为DCOMPOSITION_OPACITY_MODE_LAYER。

如果 opacityMode 参数不是DCOMPOSITION_OPACITY_MODE_INHERIT,则此视觉对象的图面由指定的不透明度模式组成。 此外,此不透明度模式将成为当前视觉对象的子级的新默认值。 也就是说,如果此视觉对象的子级的不透明度模式未更改或显式设置为 DCOMPOSITION_OPACITY_MODE_INHERIT,则使用此视觉对象的不透明度模式构成子视觉对象的表面。

要求

要求
最低受支持的客户端 Windows 8.1 [仅限桌面应用]
最低受支持的服务器 Windows Server 2012 R2 [仅限桌面应用]
目标平台 Windows
标头 dcomp.h
Library Dcomp.lib
DLL Dcomp.dll

另请参阅

IDCompositionEffectGroup::SetOpacity

IDCompositionVisual2