IDCompositionVisual::SetEffect 方法 (dcomp.h)

設定這個視覺效果的 Effect 屬性。 Effect 屬性會修改在此視覺效果上根的子樹如何與背景混合,並可將 3D 透視轉換套用至視覺效果。

語法

HRESULT SetEffect(
  [in, optional] IDCompositionEffect *effect
);

參數

[in, optional] effect

類型: IDCompositionEffect*

效果物件的指標。 此參數可以是 Null。

傳回值

類型: HRESULT

如果函式成功,它會傳回S_OK。 否則,它會傳回 HRESULT 錯誤碼。 如需錯誤碼的清單,請參閱 DirectComposition 錯誤 碼。

備註

這個方法會建立隱含的螢幕外表面,這個介面是由這個視覺效果所組成之子樹狀結構。 表面會用來做為指定效果的其中一個輸入。 效果的輸出會直接組成組合目標。 有些效果也會使用組合目標作為另一個隱含輸入。 這通常是組合效果或混合效果的情況,例如不透明度,其中組合目標會被視為「背景」。在此情況下,當目前的視覺效果轉譯時,目前視覺效果「後置」的任何視覺效果都會包含在組合目標中,並視為此視覺效果所撰寫的「背景」。

如果這個視覺效果不是視覺化樹狀結構的根目錄,而且其中一個上階也有套用效果,則最接近上階所建立的螢幕外表面就是這個視覺效果效果所組成的目標群組合目標。 否則,組合目標就是根組合目標。 因此,組合效果和混合效果的背景只會包含視覺效果,最多隻有最接近本身具有效果的上階。 相反地,套用至目前視覺效果下視覺效果的任何效果都會使用新建立的螢幕外表面做為背景,這可能會影響這些視覺效果最終在使用者認為「後置」這些視覺效果的方式。

如果 效果 參數為 Null,則不會將點陣圖效果套用至此視覺效果。 已移除與此視覺效果相關聯的任何先前效果。 螢幕外表面也會移除,而且視覺子樹會直接組成父組合目標,這可能會影響此視覺效果下組合或混合效果的呈現方式。

如果 效果 是不正確指標,或不是由建立此視覺效果的相同 IDCompositionDevice 介面所建立,這個方法就會失敗。 介面不能是自訂實作;只有由 Microsoft DirectComposition 建立的介面可以搭配這個方法使用。

需求

   
最低支援的用戶端 Windows 8 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2012 [僅限傳統型應用程式]
目標平台 Windows
標頭 dcomp.h
程式庫 Dcomp.lib
Dll Dcomp.dll

另請參閱

IDCompositionEffect

IDCompositionEffectGroup

IDCompositionMatrixTransform3D

IDCompositionRotateTransform3D

IDCompositionScaleTransform3D

IDCompositionTranslateTransform3D

IDCompositionVisual