ChangeDisplaySettingsA 函式 (winuser.h)
ChangeDisplaySettings 函式會將預設顯示裝置的設定變更為指定的圖形模式。
若要變更指定顯示裝置的設定,請使用 ChangeDisplaySettingsEx 函式。
語法
LONG ChangeDisplaySettingsA(
[in] DEVMODEA *lpDevMode,
[in] DWORD dwFlags
);
參數
[in] lpDevMode
描述新圖形模式之 DEVMODE 結構的指標。 如果 lpDevModeNULL,則登錄中目前的所有值都會用於顯示設定。 針對 lpDevMode 參數傳遞 NULL,以及 dwFlags 參數的 0,是動態模式變更后最容易回到預設模式的方法。
dmSizeDEVMODE 的成員必須初始化為 DEVMODE 結構的大小。 dmDriverExtraDEVMODE 的成員必須初始化,以指出 DEVMODE 結構之後的私人驅動程式數據位元組數目。 此外,您可以使用下列 DEVMODE 結構的任何或所有成員。
成員 | 意義 |
---|---|
dmBitsPerPel | 每個像素的位數 |
dmPelsWidth | 圖元寬度 |
dmPelsHeight | 圖元高度 |
dmDisplayFlags | 模式旗標 |
dmDisplayFrequency | 模式頻率 |
dmPosition | 裝置在多監視器設定中的位置。 |
除了使用上述一或多個 DEVMODE 成員之外,您也必須在 dmFields 成員中設定下列一或多個值,以變更顯示設定。
價值 | 意義 |
---|---|
DM_BITSPERPEL | 使用 dmBitsPerPel 值。 |
DM_PELSWIDTH | 使用 dmPelsWidth 值。 |
DM_PELSHEIGHT | 使用 dmPelsHeight 值。 |
DM_DISPLAYFLAGS | 使用 dmDisplayFlags 值。 |
DM_DISPLAYFREQUENCY | 使用 dmDisplayFrequency 值。 |
DM_POSITION | 使用 dmPosition 值。 |
[in] dwFlags
指出圖形模式應該如何變更。 此參數可以是下列其中一個值。
指定CDS_TEST可讓應用程式判斷哪些圖形模式實際上有效,而不會讓系統變更為該圖形模式。
如果指定了CDS_UPDATEREGISTRY,而且可以動態變更圖形模式,則會將資訊儲存在登錄中,並傳回DISP_CHANGE_SUCCESSFUL。 如果無法動態變更圖形模式,則會將資訊儲存在登錄中,並傳回DISP_CHANGE_RESTART。
如果指定了CDS_UPDATEREGISTRY,而且無法將資訊儲存在登錄中,圖形模式就不會變更,而且會傳回DISP_CHANGE_NOTUPDATED。
傳回值
ChangeDisplaySettings 函式會傳回下列其中一個值。
傳回碼 | 描述 |
---|---|
|
設定變更成功。 |
|
設定變更失敗,因為系統具備 DualView 功能。 |
|
傳入無效的旗標集。 |
|
不支援圖形模式。 |
|
傳入無效的參數。 這可以包含無效的旗標或旗標組合。 |
|
顯示驅動程式失敗指定的圖形模式。 |
|
無法將設定寫入登錄。 |
|
計算機必須重新啟動,圖形模式才能運作。 |
言論
若要確保傳遞至
動態變更顯示模式時,WM_DISPLAYCHANGE 訊息會傳送至所有執行中的應用程式,並具有下列訊息參數。
參數 | 意義 |
---|---|
wParam | 每個圖元的新位 |
LOWORD(lParam) | 新的像素寬度 |
HIWORD(lParam) | 新的圖元高度 |
DPI 虛擬化
此 API 不會參與 DPI 虛擬化。 指定的輸入一律以實體圖元為單位,且與呼叫內容無關。注意
winuser.h 標頭會將 ChangeDisplaySettings 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
支援的最低伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | winuser.h (包括 Windows.h) |
連結庫 | User32.lib |
DLL | User32.dll |
API 集 | ext-ms-win-ntuser-sysparams-ext-l1-1-1 (在 Windows 10 版本 10.0.14393 中引進) |