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 內容,如果視窗有子視窗,這些子視窗可能會裁剪可視化樹狀結構。 最上層參數會決定子視窗是否裁剪可視化樹狀結構。
概念上,每個視窗都包含四個圖層:
- 直接繪製至視窗句柄的內容 (這是最下層) 。
- 選擇性的 DirectComposition 可視化樹狀結構。
- 如果有的話,所有子窗口的內容。
- 另一個選擇性的 DirectComposition 可視化樹狀結構 (這是最上層) 。
最多只能針對系統中每個視窗建立兩個組合目標,一個最上層,一個不是最上層。 如果組合目標已經系結至指定圖層上的指定視窗,這個方法就會失敗。 當組合目標對象終結時,它所撰寫的圖層可供新的組合目標物件使用。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | dcomp.h |