跳轉到主要內容
本主題說明在 PC 上處理視窗顯示模式並成功顯示遊戲可呼叫 UI (TCUI) 對話方塊時所需的特殊考量。 在叫用任何可能顯示 TCUI 的 API 之前,請確定遊戲視窗為可見狀態。此外,遊戲視窗應使用全螢幕視窗化/無邊框或視窗化/非最大化模式,而不是全螢幕獨佔模式。 遊戲應以原生顯示解析度執行,而不是使用自訂的應用程式/遊戲解析度。某些技術 (例如 DirectX 9) 無法妥善處理 TCUI 對話方塊出現時的解析度變更。 除此之外,某些中介軟體引擎和包裝函式,以及 DirectX 9,會在前景焦點轉移至 TCUI 對話方塊時,自動將全螢幕遊戲視窗最小化。為了避免玩家遇到這種不理想的行為,平台在顯示 TCUI 對話方塊時會明確拒絕視窗最小化。如需詳細資訊,請參閱本主題稍後的「防止遊戲視窗最小化」一節。 對於使用非 DirectX 圖形技術的遊戲,我們建議的最佳做法有所不同,如下所示。 如果遊戲使用 OpenGL 或 Vulkan,則需要使用會顯示桌面擁有之視窗框線的「視窗化」模式,才能讓 TCUI 對話方塊轉譯在遊戲上方。這是因為根據顯示卡驅動程式的實作方式,以任何全螢幕模式執行的遊戲都可能在沒有桌面視窗管理員參與的情況下進行轉譯。這會導致 TCUI 對話方塊無法顯示在遊戲視窗上方。 若是其他圖形技術,請聯絡您的 XBOX 支援代表。

防止遊戲視窗最小化

某些中介軟體引擎和分層系統 (例如 Unity 和 Simple DirectMedia Layer (SDL)) 會在前景焦點轉移至 TCUI 對話方塊時,自動將遊戲的全螢幕視窗最小化。 為了防止此行為,Gaming Runtime 會使用 CBTProc 拒絕任何將遊戲視窗最小化的要求。只有在偵測到覆疊可以轉譯在全螢幕 DirectX 遊戲視窗上方,且 TCUI 對話方塊為可見狀態時,Gaming Runtime 才會套用此模式。 此外,Gaming Runtime 會在顯示 TCUI 對話方塊之前,攔截並修改任何樣式變更視窗訊息,以防止遊戲視窗轉譯框線或標題列。除非 WS_OVERLAPPEDWINDOW 群組中的任何樣式先前已存在於舊樣式中,否則在樣式變更時不會套用這些樣式。此修改只會在 TCUI 對話方塊的存留期間實作。

DirectX 9 搭配 TCUI 對話方塊的考量

雖然 Gaming Runtime 會依照「防止遊戲視窗最小化」(本主題稍早) 中所述,防止 DirectX 9 遊戲最小化,但當 TCUI 對話方塊出現時,這些遊戲仍會失去前景焦點。您的遊戲應妥善處理此焦點遺失,處理方式應與玩家在全螢幕執行時將遊戲視窗最小化的回應方式完全相同。

Unity 搭配 TCUI 對話方塊的考量

對於預期會顯示 TCUI 對話方塊的任何遊戲,請將 Application.runInBackground 設為 true。
最後修改於 2026年10月6日