在我的C++ Win32程序中,我想将当前的显示设置设置为"扩展"模式.我用Google搜索并发现SetDisplayConfig()是在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);
Run Code Online (Sandbox Code Playgroud)
设置所需的显示设置(扩展,复制等):
SetDisplayConfig(0,NULL,0,NULL,SDC_TOPOLOGY_EXTEND|SDC_APPLY);
Run Code Online (Sandbox Code Playgroud)
要么
SetDisplayConfig(0,NULL,0,NULL,SDC_TOPOLOGY_CLONE|SDC_APPLY);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3785 次 |
最近记录: |