EnumDisplaySettingsExA 函数 (winuser.h)
EnumDisplaySettingsEx 函数检索有关显示设备的其中一种图形模式的信息。 若要检索显示设备的所有图形模式的信息,请对此函数进行一系列调用。
此函数不同于 EnumDisplaySettings,其中 dwFlags 参数。
语法
BOOL EnumDisplaySettingsExA(
[in] LPCSTR lpszDeviceName,
[in] DWORD iModeNum,
[out] DEVMODEA *lpDevMode,
[in] DWORD dwFlags
);
参数
[in] lpszDeviceName
指向以 null 结尾的字符串的指针,该字符串指定函数将获取信息的图形模式的显示设备。
此参数为 NULL 或
[in] iModeNum
指示要检索的信息的类型。 此值可以是图形模式索引或以下值之一。
价值 | 意义 |
---|---|
|
检索显示设备的当前设置。 |
|
检索当前存储在注册表中的显示设备的设置。 |
图形模式索引从零开始。 若要获取所有显示设备图形模式的信息,请对 EnumDisplaySettingsEx进行一系列调用,如下所示:将第一次调用 的 iModeNum 设置为零,并对每次后续调用 iModeNum 增加一个。 继续调用函数,直到返回值为零。
调用 enumDisplaySettingsEx 时,iModeNum 设置为零,操作系统将初始化和缓存有关显示设备的信息。 调用 enumDisplaySettingsEx 时,iModeNum 设置为非零值时,该函数将返回在 iModeNum 设置为零时缓存的信息。
[out] lpDevMode
指向 DEVMODE 结构的指针,函数在其中存储有关指定图形模式的信息。 在调用 EnumDisplaySettingsEx之前,请将 dmSize 成员设置为 sizeof(DEVMODE),并将 dmDriverExtra 成员设置为指示可用于接收专用驱动程序数据的额外空间的大小(以字节为单位)。
EnumDisplaySettingsEx 函数将填充 lpDevMode 的 dmFields 成员以及 DEVMODE 结构的一个或多个其他成员。 若要确定调用 EnumDisplaySettingsEx设置的成员,请检查 dmFields 位掩码。 此函数通常填充的某些字段包括:
- dmBitsPerPel
- dmPelsWidth
- dmPelsHeight
- dmDisplayFlags
- dmDisplayFrequency
- dmPosition
- dmDisplayOrientation
[in] dwFlags
此参数可以是以下值。
价值 | 意义 |
---|---|
|
如果设置,该函数将返回适配器驱动程序报告的所有图形模式,而不考虑监视器功能。 否则,它将仅返回与当前监视器兼容的模式。 |
|
如果设置,该函数将返回所有方向的图形模式。 否则,它只会返回与当前为所请求的显示设置的方向相同的模式。 |
返回值
如果函数成功,则返回值为非零。
如果函数失败,则返回值为零。
言论
如果 iModeNum 大于显示设备上一个图形模式的索引,该函数将失败。 如 iModeNum 参数的说明中所述,可以使用此行为枚举显示设备的所有图形模式。
DPI 虚拟化
此 API 不参与 DPI 虚拟化。 给定的输出始终以物理像素为单位,与调用上下文无关。注意
winuser.h 标头将 EnumDisplaySettingsEx 定义为一个别名,该别名根据 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 中引入) |