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

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

本文关键字:设置 显示 EXTEND 模式 何使用 C++ Windows7      更新时间:2023-10-16

在我的C++Win32程序中,我想将当前的显示设置设置为"扩展"模式。我在谷歌上搜索了一下,发现SetDisplayConfig((是在Windows7中前进的方法(我在Windows7上(,但现在我有点纠结于如何前进,因为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);