enumDisplaySettingsA 函式 (winuser.h)

EnumDisplaySettings函式會擷取顯示裝置其中一種圖形模式的相關資訊。 若要擷取顯示裝置所有圖形模式的資訊,請對此函式進行一系列呼叫。

注意您設計以Windows 8和更新版本為目標的應用程式無法再查詢或設定每個圖元少於 32 位的顯示模式, (bpp) ;這些作業將會失敗。 這些應用程式具有以 Windows 8 為目標的相容性資訊清單。 Windows 8仍然支援在沒有Windows 8資訊清單的情況下建置之傳統型應用程式的 8 位和 16 位色彩模式;Windows 8模擬這些模式,但仍以 32 位色彩模式執行。
 

語法

BOOL EnumDisplaySettingsA(
  [in]  LPCSTR   lpszDeviceName,
  [in]  DWORD    iModeNum,
  [out] DEVMODEA *lpDevMode
);

參數

[in] lpszDeviceName

Null 終止字串的指標,指定函式將取得資訊之圖形模式的相關顯示裝置。

此參數為NullDISPLAY_DEVICE從 EnumDisplayDevices傳回的DeviceNameNull值會指定正在執行呼叫執行緒之電腦上的目前顯示裝置。

[in] iModeNum

要擷取的資訊類型。 此值可以是圖形模式索引或下列其中一個值。

意義
ENUM_CURRENT_SETTINGS
擷取顯示裝置的目前設定。
ENUM_REGISTRY_SETTINGS
擷取目前儲存在登錄中的顯示裝置設定。
 

圖形模式索引從零開始。 若要取得所有顯示裝置圖形模式的資訊,請對 EnumDisplaySettings進行一連串呼叫,如下所示:將 iModeNum 設定為零進行第一次呼叫,並在每次後續呼叫時將 iModeNum 遞增一次。 繼續呼叫函式,直到傳回值為零為止。

當您呼叫 EnumDisplaySettings 並將 iModeNum 設定為零時,作業系統會初始化並快取顯示裝置的相關資訊。 當您呼叫 EnumDisplaySettings 並將 iModeNum 設定為非零值時,函式會傳回上次呼叫 iModeNum 時所快取的資訊設為零。

[out] lpDevMode

DEVMODE結構的指標,函式會將指定圖形模式的相關資訊儲存至其中。 在呼叫 EnumDisplaySettings之前,請將 dmSize 成員設定為 sizeof(DEVMODE) ,並將 dmDriverExtra 成員設定為 ,以位元組為單位來指出可接收私人驅動程式資料的額外空間大小。

EnumDisplaySettings函式會設定下列五個DEVMODE成員的值:

  • dmBitsPerPel
  • dmPelsWidth
  • dmPelsHeight
  • dmDisplayFlags
  • dmDisplayFrequency

傳回值

如果函式成功,則傳回非零的值。

如果此函式失敗,則傳回值為零。

備註

如果 iModeNum 大於顯示裝置最後一個圖形模式的索引,此函式就會失敗。 如 iModeNum 參數的描述所述,您可以使用此行為來列舉所有顯示裝置的圖形模式。

DPI 虛擬化

此 API 不會參與 DPI 虛擬化。 提供的輸出一律是以實體圖元為根據,而且與呼叫內容無關。

注意

winuser.h 標頭會將 EnumDisplaySettings 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

   
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平臺 Windows
標頭 winuser.h (包含 Windows.h)
程式庫 User32.lib
DLL User32.dll
API 集合 ext-ms-win-ntuser-sysparams-ext-l1-1-0 (Windows 8)

另請參閱

ChangeDisplaySettings

ChangeDisplaySettingsEx

CreateDC

CreateDesktop

DEVMODE

DISPLAY_DEVICE

裝置內容函式

裝置內容概觀

EnumDisplayDevices