EnumDisplaySettingsExW 函数 (winuser.h)

EnumDisplaySettingsEx 函数检索有关显示设备的图形模式之一的信息。 若要检索显示设备的所有图形模式的信息,请对此函数进行一系列调用。

此函数与 EnumDisplaySettings 的不同 之处在于存在 dwFlags 参数。

注意设计为面向Windows 8及更高版本的应用无法再查询或设置每像素小于 32 位 (bpp) 的显示模式;这些操作将失败。 这些应用具有面向Windows 8的兼容性清单。 Windows 8仍支持在没有Windows 8清单的情况下生成的桌面应用的 8 位和 16 位颜色模式;Windows 8模拟这些模式,但仍在 32 位颜色模式下运行。
 

语法

BOOL EnumDisplaySettingsExW(
  [in]  LPCWSTR  lpszDeviceName,
  [in]  DWORD    iModeNum,
  [out] DEVMODEW *lpDevMode,
  [in]  DWORD    dwFlags
);

参数

[in] lpszDeviceName

指向以 null 结尾的字符串的指针,该字符串指定显示设备有关函数将获取哪种图形模式的信息。

此参数为 NULLDISPLAY_DEVICE。 从 EnumDisplayDevices 返回的 DeviceNameNULL 值指定运行调用线程的计算机上的当前显示设备。

[in] iModeNum

指示要检索的信息的类型。 此值可以是图形模式索引或以下值之一。

含义
ENUM_CURRENT_SETTINGS
检索显示设备的当前设置。
ENUM_REGISTRY_SETTINGS
检索当前存储在注册表中的显示设备的设置。
 

图形模式索引从零开始。 若要获取显示设备的所有图形模式的信息,请对 EnumDisplaySettingsEx 进行一系列调用,如下所示:首次调用将 iModeNum 设置为零,每次后续调用将 iModeNum 递增 1。 继续调用函数,直到返回值为零。

调用将 iModeNum 设置为零的 EnumDisplaySettingsEx 时,操作系统将初始化并缓存有关显示设备的信息。 调用将 iModeNum 设置为非零值的 EnumDisplaySettingsEx 时,函数将返回上次调用函数时缓存的信息,并将 iModeNum 设置为零。

[out] lpDevMode

指向 DEVMODE 结构的指针,函数在其中存储有关指定图形模式的信息。 在调用 EnumDisplaySettingsEx 之前,将 dmSize 成员设置为 sizeof (DEVMODE) ,并将 dmDriverExtra 成员设置为指示可用于接收专用驱动程序数据的额外空间的大小(以字节为单位)。

EnumDisplaySettingsEx 函数将填充 lpDevModedmFields 成员以及 DEVMODE 结构的一个或多个其他成员。 若要确定通过调用 EnumDisplaySettingsEx 设置的成员,请检查 dmFields 位掩码。 此函数通常填充的一些字段包括:

  • dmBitsPerPel
  • dmPelsWidth
  • dmPelsHeight
  • dmDisplayFlags
  • dmDisplayFrequency
  • dmPosition
  • dmDisplayOrientation

[in] dwFlags

此参数可以是以下值。

含义
EDS_RAWMODE
如果设置,函数将返回适配器驱动程序报告的所有图形模式,而不考虑监视器功能。 否则,它将仅返回与当前监视器兼容的模式。
EDS_ROTATEDMODE
如果设置,函数将返回所有方向的图形模式。 否则,它将仅返回方向与当前为请求的显示设置方向相同的模式。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。

注解

如果 iModeNum 大于显示设备最后一个图形模式的索引,则函数将失败。 如 iModeNum 参数的说明中所述,可以使用此行为枚举显示设备的所有图形模式。

DPI 虚拟化

此 API 不参与 DPI 虚拟化。 给定的输出始终以物理像素为单位,与调用上下文无关。

注意

winuser.h 标头将 EnumDisplaySettingsEx 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 winuser.h (包括 Windows.h)
Library User32.lib
DLL User32.dll
API 集 Windows 10版本 10.0.14393 中引入的 ext-ms-win-ntuser-sysparams-ext-l1-1-1 ()

另请参阅

ChangeDisplaySettings

ChangeDisplaySettingsEx

CreateDC

CreateDesktop

DEVMODE

DISPLAY_DEVICE

设备上下文函数

设备上下文概述

EnumDisplayDevices

EnumDisplaySettings