共用方式為


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 指標來設定一或多個視覺效果的內容。 設定內容之後,只要視窗分層,視覺效果就會撰寫指定分層窗口的內容。 如果視窗未配置,則視窗內容會從組合樹狀結構的輸出中消失。 如果視窗稍後重新分層,只要窗口內容仍然與視覺效果相關聯,視窗內容就會重新出現。 如果視窗重設大小,則會重新撰寫受影響的視覺效果。

視窗的內容不會快取超過視窗的存留期。 也就是說,如果視窗已終結,受影響的視覺效果就會停止撰寫視窗。

如果視窗在螢幕外移動或重設大小為零,系統會停止撰寫這些視覺效果的內容。 當您需要隱藏原始視窗時,您應該使用 DwmSetWindowAttribute 函式搭配 DWMWA_CLOAK 旗標來「遮蔽」分層子窗口,同時讓系統繼續撰寫視覺效果的內容。

規格需求

需求
目標平台 Windows
標頭 dcomp.h

另請參閱

IDCompositionDesktopDevice

IDCompositionVisual::SetContent