微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何可靠地识别 Direct3D9“设备”何时映射到哪个 Windows GDI“监视器”?

如何解决如何可靠地识别 Direct3D9“设备”何时映射到哪个 Windows GDI“监视器”?

我正在尝试使用 IDirect3DDevice9::GetFrontBufferData() 获取多个显示器的屏幕截图并且它可以工作,但我无法弄清楚如何识别哪个 IDirect3DDevice9 对应于哪个显示器以及它的输出如何在 Windows 上定位“虚拟屏幕”。

我尝试了 IDirect3DDevice9::GetViewport() 但它总是获得左上坐标设置为“0,0”(以及适当的宽度和高度)的视口坐标,因此它不能用于识别哪个显示器在左边,哪个在右边.

到目前为止,我发现当我调用 EnumdisplayMonitors() 时,监视器会按顺序枚举,因为当我调用 IDirect3D9::GetAdapterdisplayMode() 时会枚举设备,这可以使用。但是,我没有看到文档说明是否可以保证这两个函数的枚举顺序。

我可以依赖具有相同枚举顺序的 EnumdisplayMonitors()IDirect3D9::GetAdapterdisplayMode() 吗?有没有更好的办法?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。