共用方式為


IDCompositionDesktopDevice::CreateTargetForHwnd 方法 (dcomp.h)

建立組合目標物件,該對象系結至指定之視窗句柄所代表的視窗。

語法

HRESULT CreateTargetForHwnd(
  [in]  HWND                hwnd,
        BOOL                topmost,
  [out] IDCompositionTarget **target
);

參數

[in] hwnd

應該系結組合目標對象的視窗。 此參數不得為 NULL。

topmost

TRUE 是表示 如果可視化樹狀結構應該顯示在 hwnd 參數所指定視窗的子系之上;否則,視覺效果樹狀結構會顯示在子系後面。

[out] target

新的組合目標物件。 此參數不得為 NULL。

傳回值

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

備註

DirectComposition 可視化樹狀結構必須先系結至視窗,才能在螢幕上顯示任何專案。 視窗可以是最上層視窗或子視窗。 不論是哪一種情況,視窗都可以是分層視窗,但在所有情況下,視窗都必須屬於呼叫進程。 如果窗口屬於不同的進程,這個方法會傳回 DCOMPOSITION_ERROR_ACCESS_DENIED

當 DirectComposition 內容組成視窗時,內容一律會透過 GetDC 函式傳回的裝置內容,或呼叫 DirectX Present 方法,直接繪製到該視窗的任何內容之上。 不過,因為視窗裁剪規則適用於 DirectComposition 內容,如果視窗有子視窗,這些子視窗可能會裁剪可視化樹狀結構。 最上層參數會決定子視窗是否裁剪可視化樹狀結構。

概念上,每個視窗都包含四個圖層:

  1. 直接繪製至視窗句柄的內容 (這是最下層) 。
  2. 選擇性的 DirectComposition 可視化樹狀結構。
  3. 如果有的話,所有子窗口的內容。
  4. 另一個選擇性的 DirectComposition 可視化樹狀結構 (這是最上層) 。
這四個圖層都會裁剪到視窗的可見區域。

最多只能針對系統中每個視窗建立兩個組合目標,一個最上層,一個不是最上層。 如果組合目標已經系結至指定圖層上的指定視窗,這個方法就會失敗。 當組合目標對象終結時,它所撰寫的圖層可供新的組合目標物件使用。

規格需求

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

另請參閱

IDCompositionDesktopDevice

IDCompositionVisual2