繁体   English   中英

如何使用 C++ 在 Windows 7 中将显示设置设置为 EXTEND 模式?

[英]How to set Display Settings to EXTEND mode in Windows 7 using C++?

在我的 C++ Win32 程序中,我想将当前显示设置设置为“扩展”模式。 我用谷歌搜索,发现 SetDisplayConfig() 是 go 在 Windows 7 中前进的方式(我在Windows 7 上)但现在我有点困惑,因为 MSDN 的解释有点令人困惑。 我对 C++ 和 API 编程非常陌生,所以我很难理解这一点。

我非常感谢一些代码示例和解释。 提前致谢!

好的,所以我想出了答案。

要识别当前配置:

UINT32 PathArraySize = 0;
UINT32 ModeArraySize = 0;
DISPLAYCONFIG_PATH_INFO* PathArray;
DISPLAYCONFIG_MODE_INFO* ModeArray;
DISPLAYCONFIG_TOPOLOGY_ID CurrentTopology;

GetDisplayConfigBufferSizes(QDC_ALL_PATHS, &PathArraySize, &ModeArraySize);

PathArray =   (DISPLAYCONFIG_PATH_INFO*)malloc(PathArraySize * sizeof(DISPLAYCONFIG_PATH_INFO));
memset(PathArray, 0, PathArraySize * sizeof(DISPLAYCONFIG_PATH_INFO));

ModeArray =   (DISPLAYCONFIG_MODE_INFO*)malloc(ModeArraySize * sizeof(DISPLAYCONFIG_MODE_INFO));
memset(ModeArray, 0, ModeArraySize * sizeof(DISPLAYCONFIG_MODE_INFO));

LONG ret = QueryDisplayConfig(QDC_DATABASE_CURRENT,&PathArraySize, PathArray, &ModeArraySize, ModeArray, &CurrentTopology);
// Above CurrentTopology variable will aquire the current display setting (ie Extend, Duplicate etc)

free(PathArray);
free(ModeArray);

要设置所需的显示设置(扩展、复制等):

SetDisplayConfig(0,NULL,0,NULL,SDC_TOPOLOGY_EXTEND|SDC_APPLY);

或者

SetDisplayConfig(0,NULL,0,NULL,SDC_TOPOLOGY_CLONE|SDC_APPLY);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM