利用windows API更改显示器的分辨率和更改双屏的显示模式

原创 2016年05月31日 17:12:39

//更改显示屏的分辨率(windows8)
DEVMODE dmScreenSettings;
memset(&dmScreenSettings,0,sizeof(dmScreenSettings));  
dmScreenSettings.dmSize = sizeof(dmScreenSettings); 
EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &dmScreenSettings); 
dmScreenSettings.dmPelsWidth = 1024; 
dmScreenSettings.dmPelsHeight = 768; 
ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN);
system("pause");


//上述方法在windows7上不太适用,针对以上做以下更改

//设置屏幕的分辨率
DEVMODE dmScreenSettings;
memset(&dmScreenSettings,0,sizeof(dmScreenSettings));  
dmScreenSettings.dmSize = sizeof(dmScreenSettings); 
dmScreenSettings.dmBitsPerPel = 32;
dmScreenSettings.dmFields = DM_PELSWIDTH|DM_PELSHEIGHT|DM_BITSPERPEL;
dmScreenSettings.dmPelsWidth = 1440; 
dmScreenSettings.dmPelsHeight = 900;  
long result = ChangeDisplaySettings(&dmScreenSettings,0);
if (result == DISP_CHANGE_SUCCESSFUL)
{
MessageBox(NULL,TEXT("分辨率修改成功!"),TEXT("提示"),MB_ICONEXCLAMATION|MB_OK);
ChangeDisplaySettings(&dmScreenSettings,CDS_UPDATEREGISTRY);
}
else
{
MessageBox(NULL,TEXT("分辨率修改失败"),TEXT("提示"),MB_ICONEXCLAMATION|MB_OK);
ChangeDisplaySettings(NULL,0);
}


//更改屏幕多屏幕的显示模式 
system ("DisplaySwitch.exe /clone");  //屏幕复制
system ("DisplaySwitch.exe /extend"); //屏幕扩展
system ("DisplaySwitch.exe /internal");//仅电脑屏幕
system ("DisplaySwitch.exe /external"); //仅第二屏幕




版权声明:本文为博主原创文章,未经博主允许不得转载。

c++调用api实现获取修改屏幕分辨率

步骤: 1.定义DEVMODE结构体变量 2.调用EnumDisplaySettings 获取DEVMODE成员的值 3.修改DEVMODE的成员变量,用ChangeDisplaySetting...
  • yedehei_lt
  • yedehei_lt
  • 2015年12月17日 16:04
  • 1962

Windows 多显示器下的编程

概要 本文分步骤介绍如何在 Windows XP 中配置和使用多台监视器。Windows XP 可通过使用多台监视器扩大您的桌面,进而提高您的工作效率。一台计算机上可连接多达十台单独的监视器,借助于这...
  • FreeWave
  • FreeWave
  • 2008年01月10日 15:41
  • 7974

适配不同分辨率屏幕

如今的屏幕分辨率,小至320px(iPhone),大到2560px甚至更高(大显示器),变化范围极大。除了使用传统的台式机,用户会越来越多的通过手机、上网本、iPad一类的平板设备来浏览页面。这种情况...
  • cyjch
  • cyjch
  • 2016年05月26日 12:59
  • 2928

C/C++控制调节屏幕分辨率

  • 2014年10月16日 10:23
  • 7.59MB
  • 下载

Windows API 获取屏幕分辨率 GetSystemMetrics ( )

Windows API 获取屏幕分辨率  GetSystemMetrics ( )    int   cxScreen = GetSystemMetrics (SM_CXSCREEN) ;  // w...
  • lsk1124981644
  • lsk1124981644
  • 2015年04月14日 20:08
  • 386

Windows API获取屏幕真实大小

在Petzold的书中写用GetDeviceCaps(hdc,LOGPIXELSX)得到屏幕DPI(dot per inch)计算真实大小,但我实际操作了发现不对。在Windows系统中,我得到LOG...
  • tomwillow
  • tomwillow
  • 2016年10月25日 10:59
  • 1587

屏幕放大镜,运行这个程序之后,当光标在屏幕上移动时,光标位置附近的图像会放大显示在程序窗口中。支持以不同的比例放大图像。利用Windows API函数,同时还使用了API对INI 文件进行操作。(23KB)...

  • 2009年10月07日 00:07
  • 23KB
  • 下载

【VC】DisplaySwitch.exe 的参数格式

具体的位置:C:\Windows\System32\DisplaySwitch.exe 仅电脑屏幕 displayswitch /internal 复制 displayswitch...
  • shen_wei
  • shen_wei
  • 2014年12月04日 14:57
  • 1688

VC下双屏显示的实现

主机上另外再连接一个监视器,这样主机就可以检测到两个显示器,设置显示器属性,将屏幕扩展到第二屏(采用扩展模式)。在VC编程时,可以检测到第二屏的信息(甚至多屏),比如屏的个数,各个屏的分辨率,各个屏的...
  • guoguojune
  • guoguojune
  • 2016年01月14日 16:11
  • 2155

开发支持多显示器的Windows程序,挺全的

平:Windows api 多显示器信息相关函数和相关说明,挺全的 转载地址:http://blog.csdn.net/eddiejam/article/details/3959612 M...
  • jean7155
  • jean7155
  • 2015年04月30日 15:13
  • 5003
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用windows API更改显示器的分辨率和更改双屏的显示模式
举报原因:
原因补充:

(最多只允许输入30个字)