IDCompositionVisual::SetTransform (IDCompositionTransform*) 方法 (dcomp.h)

将此视觉对象的 Transform 属性设置为指定的 2D 转换对象。

语法

HRESULT SetTransform(
  [in, optional] IDCompositionTransform *transform
);

参数

[in, optional] transform

类型: IDCompositionTransform*

用于修改此视觉对象的坐标系的转换对象。 此参数可以指向 IDCompositionTransform 接口或其派生接口之一。 此参数可以为 NULL。

返回值

类型: HRESULT

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

备注

设置 Transform 属性将转换根植于此视觉对象的整个视觉对象子树的坐标系。 如果指定了此视觉对象的 Clip 属性,则也会转换剪辑矩形。

如果 Transform 属性以前指定了转换矩阵,则新指定的转换对象将替换转换矩阵。

Transform 属性指定的转换在 OffsetX 和 OffsetY 属性之后应用。 换句话说,设置 Transform 属性和 OffsetX 和 OffsetY 属性的效果与仅设置转换组的 Transform 属性相同,其中组的第一个成员是具有相同 OffsetX 和 OffsetY 值的 IDCompositionTranslateTransform 对象。 但是,应尽可能使用 IDCompositionVisual::SetOffsetXSetOffsetY 方法,因为它们稍微快一些。

如果 transform 是无效指针,或者它不是由创建此视觉对象的同一 IDCompositionDevice 接口创建的,则此方法失败。 接口不能是自定义实现;只有 Microsoft DirectComposition 创建的接口才能与此方法一起使用。

如果 transform 参数为 NULL,则此视觉对象的坐标系仅通过其 OffsetX 和 OffsetY 属性进行转换。 将 Transform 属性设置为 NULL 等效于将其设置为 IDCompositionMatrixTransform 对象,其中指定的矩阵是标识矩阵。 但是,应用程序应尽可能将 Transform 属性设置为 NULL,因为它稍微快一些。

如果 OffsetX 和 OffsetY 属性设置为 0,而 Transform 属性设置为 NULL,则视觉对象的坐标系与其父级的坐标系相同。

要求

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

另请参阅

IDCompositionMatrixTransform

IDCompositionRotateTransform

IDCompositionScaleTransform

IDCompositionSkewTransform

IDCompositionTransform

IDCompositionTranslateTransform

IDCompositionVisual

IDCompositionVisual::SetOffsetX

IDCompositionVisual::SetOffsetY