簡體   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