小编Jim*_*ola的帖子

如何在 Windows 上正确克隆和扩展两个特定监视器

我正在为 Windows 10 开发一个模块,用于管理配置并将其应用到连接的显示器。使用下面的代码,我可以克隆和扩展通过 HDMI、VGA、DP 和 DVI 连接的显示器,但在克隆使用 displaylink 驱动程序 ( https://www.displaylink.com/downloads )的 USB 连接显示器时遇到问题。当然,如果我使用Windows 显示设置窗口,这将有效。问题是我不太确定如何在 Windows 上正确克隆和扩展监视器。

代码很简单,基本上就是这样做的:

1 获取缓冲区大小

GetDisplayConfigBufferSizes函数检索调用QueryDisplayConfig所需的缓冲区大小。 它确定保存所有有效路径所需的路径和模式信息数组的大小。有关这些路径的更多详细信息,请参阅 下面的文档以获取更多信息

#include <Windows.h>
#include <iostream>
#include <vector>

int main()
{
  UINT32 pathSize, modeSize;
  GetDisplayConfigBufferSizes(QDC_ALL_PATHS, &pathSize, &modeSize);
  std::vector<DISPLAYCONFIG_PATH_INFO> pathArray(pathSize);
  std::vector<DISPLAYCONFIG_MODE_INFO> modeArray(modeSize);

  // Fills a block of memory with zeros.
  SecureZeroMemory(&pathArray[0],
                   sizeof(DISPLAYCONFIG_PATH_INFO) * 
                   pathArray.size());

  SecureZeroMemory(&modeArray[0],
                   sizeof(DISPLAYCONFIG_MODE_INFO) * 
                   modeArray.size());

  //...
}
Run Code Online (Sandbox Code Playgroud)

QDC_ALL_PATHS :目标的所有可能的路径组合。

2 获取有关显示器的信息

QueryDisplayConfig函数检索有关当前设置中所有显示设备或视图的所有可能显示路径的信息。 …

c++ winapi multiple-monitors gdi

7
推荐指数
0
解决办法
1322
查看次数

为什么 8 位字符串文字可以包含多字节字符,而 char 向量却不能?

我试图弄清楚为什么 8 位 char 数据类型可以包含所有这些奇怪的字符,因为它们不是前 256 个字符表的一部分。

\n
#include <iostream>\n\nint main()\n{\n    char chars[] = "    \xe5\xbf\x85   \xe8\xa5\xbf \xe2\x99\xa0 \xe2\x99\xac   \xe2\x99\xad   \xe2\x99\xae   \xe2\x99\xaf";\n    std::cout << "sizeof(char): " << sizeof(char) << " byte" << std::endl;\n    std::cout << chars << std::endl;\n    return 0;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

在此输入图像描述

\n

c++ linux

2
推荐指数
1
解决办法
162
查看次数

标签 统计

c++ ×2

gdi ×1

linux ×1

multiple-monitors ×1

winapi ×1