关于ChangeDisplaySettings

 

ChangeDisplaySettings

  函数功能:该函数把缺省显示设备的设置改变为由lpDevMode设定的图形模式,要改变一个特定显示设备的设置,请使用ChangeDisplaySettingEx函数。
  函数原型:LONG ChangeDisplaySettings (LPDEVMODE lpDevMode, DWORD dwflags);
  参数:
  lpDevMode:指向一个描述转变图表的DEVMODE的指针。DEVMODE的dmSize参数必须依DEVMODE结构的大小、字节进行初始化,dmDriveExtra参数必须初始化来显示DEVMODE随后的驱动数据的字节数,另外还可以选用以下参数:
  dmBitsPerPel每个像素的位数,dmPelsWidth像素宽度,dmPelsHeight像度高度,dmDisplayFlage模式标志。
  dmDisplayFrequency模式频率。
  dmposition在多显示配置中设备的位置(适用于Windows 98、Windows NT 5.0及以后版本)。
  除了设置好DEVMOD结构中诸多元素的值之外,还必须要正确地设置dmFields元素中的标志。这些标志表明了DEVMODE结构中哪个元素在改变显示设置时使用了。如果在dmFields中没有设置正确的位,那么显示设置将不会发生变化。请设置好以下的标志:
  DM_BITSPERPEL使用dmBitsPerPel的值,DM_PELSWIDTH使用dmPelsWidth的值,
  DM_PELSHEIGHT使用dmPelsHeight的值,DM_DISPLAYFLAGS使用dmDisplayFlags的值,
  DM_DISPLAYFREQUENCY使用dmDisplayFrequency的值。
  DM_POSITION使用fdmPosition的值(适用于Windows98、WindowsNT5.0)。
  如果lpDevMode为空。那么显示设置就使用注册表中的所有当前值。在显示模式动态地调整之后要想再回到缺省的模式,最简单的办法就是把lpDevMode参数置为空,使dwFlags参数置为0。
  dwflags:表明了图形模式如何改变,它可能是如下的几种形式中的一种:
  0:表明当前屏幕的图形模式要动态地改变。
  CDS_UPDATEREGISTRY:表明当前屏幕的图形模式会动态地变化,并且该图形模式会更新注册表。该模式信息存贮在用户档案中。
  CDS_TEST:系统检测是否要设置被请求的图形模式。
  CDS_FULLSCREEN:从本质上讲该模式是暂时的。
  CDS_GLOBAL:该设置保存在全局设置区域内, 因此它们会影响所有的用户。该标志仅在与标志一起使用时才有效。CDS_SET_PRIMARY:该设备成为首要设备。
  CDS_RESET:设置要改变,即使请求的设置与当前设置一样。CDS_NORESET:设置保存在注册表中,但是它不起作用,该标志只有与CDS_UPDATEREGISTRY标志一起使用时才有效。
  指定CDS_TEST允许一个应用确定哪个图形模式真正的有效。但并不会使系统变为那个有效的图形模式。
  如果CDS_UPDATEREGISTRY被指定并且它可能会动态地改变图形模式。则注册表中保存该信息并且返回DISP_CHANGE_SUCCESSFUL如果不可能使用图形模式动态地改变,则注册表中保存该信息并且返回DISP_CHANGE_RESTART。
  Windows NT:如果指定了CDS_UPDATEREGISTRY并且在注册表中不能保存该信息,则图形模式不会改变,并且返回DISP_CHANGE_NOTUPDATERD。
  返回值:ChangeDisplaySettings函数的返回值如下:
  DISP_CHANGE_SUCCESSFUL:设备改变成功。
  DISP_CHANGE_RESTART:为使图形模式生效计算机必须重新启动。
  DISP_CHANGE_BADFLAGS:标志的无效设置被传送。
  DISP_CHANGE_NOTUPDATED:在WindowsNT中不能把设置写入注册表。
  DISP_CHANGE_BADPARA:一个无效的参数被传递。它可以包括一个无效的标志或标志的组合。
  DISP_CHANGE_FAILED:指定图形模式的显示驱动失效。
  DISP_CHANGE_ADMODE:不支持图形模式。
  注释:为了保证传递给ChangeDisplaySetting的DEVMODE结构是有效的,并且仅包含显示驱动支持的值,可以使用由EnumDisplaySettings函数返回的DEVMODE。
  当显示模式被动态地改变时,WM_DISPLAYCHANGE消息带着如下的消息参数传递给所有正在运行的应用:
  wParam每像素点的新位数,LOWORD(lParam)新像素宽度,HIWORD(lParam)新像素高度。
  速查:Windows NT:3.51及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib;Unicode:在Windows NT上实现为Unicode和ANSI两种版本。

你可能感兴趣的:(windows,user,图形)