如何解决如何可靠地识别 Direct3D9“设备”何时映射到哪个 Windows GDI“监视器”?
我正在尝试使用 IDirect3DDevice9::GetFrontBufferData()
获取多个显示器的屏幕截图并且它可以工作,但我无法弄清楚如何识别哪个 IDirect3DDevice9
对应于哪个显示器以及它的输出如何在 Windows 上定位“虚拟屏幕”。
我尝试了 IDirect3DDevice9::GetViewport()
但它总是获得左上坐标设置为“0,0”(以及适当的宽度和高度)的视口坐标,因此它不能用于识别哪个显示器在左边,哪个在右边.
到目前为止,我发现当我调用 EnumdisplayMonitors()
时,监视器会按顺序枚举,因为当我调用 IDirect3D9::GetAdapterdisplayMode()
时会枚举设备,这可以使用。但是,我没有看到文档说明是否可以保证这两个函数的枚举顺序。
我可以依赖具有相同枚举顺序的 EnumdisplayMonitors()
和 IDirect3D9::GetAdapterdisplayMode()
吗?有没有更好的办法?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。