ChangeDisplaySettings

【勇芳软件工作室】汉化HomePreviousNext

ChangeDisplaySettings功能将显示设置更改为指定的图形模式。

LONG ChangeDisplaySettings(

LPDEVMODE 【lpDevMode】, 
DWORD 【dwFlags中】 
); 

参数

【lpDevMode】

指向DEVMODE结构的指针,描述要切换到的图形模式。dmsiz到成员必须初始化为DEVMODE结构的大小(以字节为单位)。使用DEVMODE结构中的以下字段:

会员含义
dmBitsPerPel每像素位数
dmPelsWidth像素宽度
dmPelsHeight像素高度
dmDisplayFlags模式标志
dmDisplayFrequency模式频率

除了在DEVMODE成员中的一个或多个之外设置值,您还必须在dmFieldsnobg-Latn成员中设置相应的标志。标志表示DEVMODE结构的哪些成员用于显示设置更改。如果dmFieldsnobg-Latn中未设置相应的位,显示设置将不会更改。设置一个或多个以下标志:

含义
DM_BITSPERPEL使用dmBitsPerPel值。
DM_PELSWIDTH使用dmPelsWidth值。
DM_PELSHEIGHT使用dmPelsHeight值。
DM_DISPLAYFLAGS使用dmDisplayFlags值。
DM_DISPLAYFREQENCY使用dmDisplayFrequency值。

如果【lpDevMode】为NULL,则注册表中当前所有的值将用于显示设置。传递【lpDevMode】参数的空值是在动态模式更改后返回默认模式的最简单方法。

【dwFlags中】

指示如何更改图形模式。可能是以下之一:

含义
0当前屏幕的图形模式将被动态更改。
CDS_UPDATEREGISTRY当前屏幕的图形模式将被动态更改,图形模式将在注册表中更新。模式信息存储在USER配置文件中。
CDS_TEST系统测试是否可以设置所请求的图形模式。

如果指定了CDS_UPDATEREGISTRY,并且可以动态更改图形模式,则信息将存储在注册表中,并返回DISP_CHANGE_SUCCESSFUL。如果不可能动态更改图形模式,信息将存储在注册表中,并返回DISP_CHANGE_RESTART。

Windows NT:如果信息无法存储在注册表中,则图形模式不会更改,并返回DISP_CHANGE_NOTUPDATED。

指定CDS_TEST允许应用程序确定哪些图形模式实际上是有效的,而不会导致系统更改为该图形模式。

返回值

返回以下值之一:

含义
DISP_CHANGE_SUCCESSFUL设置更改成功。
DISP_CHANGE_RESTART必须重新启动计算机才能使图形模式工作。
DISP_CHANGE_BADFLAGS传入一组无效的标志。
DISP_CHANGE_FAILED显示驱动程序在指定的图形模式下失败。
DISP_CHANGE_BADMODE不支持图形模式。
DISP_CHANGE_NOTUPDATED仅Windows NT:无法将设置写入注册表。

备注

使用EnumDisplaySettings功能返回的DEVMODE可确保传递给ChangeDisplaySettingsDEVMODE有效,并且仅包含显示驱动程序支持的值。

当动态更改显示模式时,WM_DISPLAYCHANGE消息将发送到具有以下消息参数的所有正在运行的应用程序:

参数含义
wParam中每像素新位
LOWORD(lParam)新像素宽度
HIWORD(lParam)新像素高度

也可以看看

CreateDC, DEVMODE, EnumDisplaySettings, WM_DISPLAYCHANGE