IDXGISwapChain::SetFullscreenState 方法 (dxgi.h)
將顯示狀態設定為視窗化或全螢幕。
語法
HRESULT SetFullscreenState(
BOOL Fullscreen,
IDXGIOutput *pTarget
);
參數
Fullscreen
類型: BOOL
布爾值,指定是否要將顯示狀態設定為視窗化或全螢幕。 若 為全螢幕,則為TRUE,而視窗化則為 FALSE 。
pTarget
類型:[in, optional] IDXGIOutput*
如果您將 TRUE 傳遞給 Fullscreen 參數以將顯示狀態設定為全螢幕,您可以選擇性地將此參數設定為包含交換鏈結之輸出目標的 IDXGIOutput 介面指標。 如果您將此參數設定為 NULL,DXGI 會根據交換鏈結的裝置和輸出視窗的位置來選擇輸出。 如果您將 FALSE 傳遞至 全螢幕,則必須將此參數設定為 NULL。
傳回值
類型: HRESULT
這個方法會傳回其中一個值。
- 如果 動作成功且交換鏈結處於要求狀態,S_OK。
- 如果動作失敗,DXGI_ERROR_NOT_CURRENTLY_AVAILABLE。 傳回此錯誤時,您的應用程式可以繼續在視窗模式中執行,並稍後嘗試切換至全螢幕模式。 有許多原因導致視窗模式交換鏈結無法切換至全螢幕模式。 以下是一些範例。
- 應用程式正在終端機伺服器上執行。
- 輸出視窗會遮蔽。
- 輸出視窗沒有鍵盤焦點。
- 另一個應用程式已經在全螢幕模式中。
- 如果呼叫此 API 時發生全螢幕/視窗模式轉換,則會傳回DXGI_STATUS_MODE_CHANGE_IN_PROGRESS。
- 如果您記憶體不足或遇到另一個非預期的錯誤,則為其他錯誤碼;這些程式代碼可能會被視為硬式、不可持續性的錯誤。
備註
DXGI 可能會變更交換鏈結的顯示狀態,以回應使用者或系統要求。
建議您建立視窗式交換鏈結,並允許使用者透過 SetFullscreenState 將交換鏈結變更為全螢幕;也就是說,請勿將DXGI_SWAP_CHAIN_DESC的 Windowed 成員設定為 FALSE,以強制交換鏈結全螢幕。 不過,如果您將交換鏈結建立為全螢幕,也會為終端使用者提供支持的顯示模式清單,因為以不支援的顯示模式建立的交換鏈結可能會導致顯示器變成黑色,並防止終端使用者看到任何專案。 此外,當您允許使用者變更顯示模式時,建議您有逾時確認畫面或其他後援機制。
Windows 市集應用程式的注意事項
如果 Windows 市集應用程式呼叫 SetFullscreenState 將顯示狀態設定為全螢幕, 則 SetFullscreenState 會失敗並 DXGI_ERROR_NOT_CURRENTLY_AVAILABLE。您無法在以IDXGIFactory2::CreateSwapChainForComposition 建立的交換鏈結上呼叫 SetFullscreenState。
針對 翻轉簡報模型,將顯示狀態轉換為全屏幕之後,您必須呼叫 ResizeBuffers 以確保呼叫 IDXGISwapChain1::P resent1 成功。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | dxgi.h |
程式庫 | DXGI.lib |