【问题标题】:Creating a Device Context for a Monitor in Mirror mode在镜像模式下为监视器创建设备上下文
【发布时间】:2012-02-07 21:08:38
【问题描述】:

我已经阅读了大量关于这个问题的文档,但我似乎找不到任何表明这是可能的。

我通常使用这个函数来创建我的 HDC http://msdn.microsoft.com/en-us/library/dd183490(v=VS.85).aspx

我已经检查了从注册表到 WMI 的每一个角落和缝隙,它们似乎无论如何都不能在克隆模式下为监视器创建和 HDC。

我希望能够创建 HDC,因为没有它,您将无法修改监视器的查找表或使用它的 DDC 接口。

如果有更新的更简洁的方法来修改 LUT 或访问 DDC,我很乐意听到。

【问题讨论】:

    标签: c++ winapi


    【解决方案1】:

    你可以使用

    EnumDisplayDevices(...);
    

    并获取显示设备的名称并将其传递给 CreateDC 函数。

    EnumDisplayMonitors(...)
    GetMonitorInfo(...)
    

    获取显示器尺寸的函数。 您应该在第二个监视器虚拟区域的范围内绘制。虚拟区域是两个显示器的组合......我猜矩形(坐标)是不同的,即使你正在镜像。我没查。

    【讨论】:

      【解决方案2】:

      如果您正在处理 GDI 上下文,SetWorldTransform 应该可以解决问题。

      【讨论】:

      • 我不是在尝试镜像显示器上的内容,而是尝试为正在镜像主显示器的第二台显示器获取 hDC。
      • 嗯...我做了一些调查: CreateDC("DISPLAY", "\\\\.\\DISPLAY2", NULL, NULL) 返回非空值 ('\\.\DISPLAY3' ,相反,在两台显示器设置上返回 NULL),但绘制到该设备,显然什么也不显示。如果您尝试访问显示器的 DDC,它仍然可能会有所帮助。至少你可以打开设备……
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-08
      • 2010-10-09
      • 2013-09-15
      • 2023-04-07
      • 2023-03-11
      • 2016-06-23
      相关资源
      最近更新 更多