我正在开发一个在Windows XP(嵌入式)上运行的旧版vb6应用程序,它使用ChangeDisplaySettingsEx来控制连接的监视器的分辨率.
我的任务是在安装多个监视器时找到一种方法让ChangeDisplaySettingsEx在克隆和扩展模式之间切换.
当连接第二台显示器时,它会自动在克隆模式下工作.
当我使用EnumDisplayDevices枚举可用的显示设备时,DISPLAY_DEVICE.DeviceString显示如下:
\\.\DISPLAY1\Monitor0
\\.\DISPLAY1\Monitor1
Run Code Online (Sandbox Code Playgroud)
当监视器处于扩展模式时,它们显示如下:
\\.\DISPLAY1\Monitor0
\\.\DISPLAY2\Monitor0
Run Code Online (Sandbox Code Playgroud)
我已经反复阅读过MSDN,并且对于如何调用API将模式从Clone更改为Extended,似乎没有一个可靠的答案.
我的猜测是分离第二台显示器,然后尝试找出重新连接的方法,所以我开始尝试按照http://msdn.microsoft.com/en-us/library/dd162617(v=vs.85)进行分离.).aspx但是我不能让任何这个工作.
每当我尝试解析\.\ DISPLAY1\Monitor1到ChangeDisplaySettingsEx我得到DISP_CHANGE_BADPARAM - 例如
ChangeDisplaySettingsEx(\\.\DISPLAY1\Monitor1, DevM, 0, CDS_GLOBAL Or CDS_UPDATEREGISTRY, 0)
Run Code Online (Sandbox Code Playgroud)
我真的把头发拉出来了.
有谁知道如何禁用克隆模式并使用API启用扩展模式?
| 归档时间: |
|
| 查看次数: |
3185 次 |
| 最近记录: |