【问题标题】:Monitors position on Windows wallpaper显示器在 Windows 壁纸上的位置
【发布时间】:2015-06-27 18:56:35
【问题描述】:

我正在开发 C++ 应用程序来管理 Windows 上多台显示器上的壁纸,就像 UltraMon 和 DisplayFusion 所做的那样,但有更多选项。

一切正常,但监控放置。

我的桌面有三个这样排列的显示器(忽略 N°4)

但是当我查看 UltraMon 生成的壁纸文件时,第三个监视器(小的)没有相同的位置:

通过使用 EnumDisplayMonitors 和 GetMonitorInfo 函数,我得到了这些数据:

0: 1920x1080 at 1920x0
1: 1920x1080 at 0x0 primary
2: 800x480 at -800x-480 

与我的安排相对应,但与壁纸文件不同。

如何知道图像在全局壁纸文件中的位置以使其显示在正确的监视器上?我猜 UltraMon 的作者找到了正确的方法,因为它可以完美运行。

(我也在 UltraMon 论坛上问过这个问题)。

【问题讨论】:

标签: c++ windows winapi wallpaper


【解决方案1】:

感谢 Raymon Chen 引用的文章,我明白了。 http://blogs.msdn.com/b/oldnewthing/archive/2007/09/24/5083738.aspx

要知道的两件事:

  1. 在每台显示器上使用不同壁纸的诀窍是构建“宏观壁纸”并将其平铺在桌面上
  2. 磁贴从主监视器上的 0;0 开始

知道,位于主显示器左侧或顶部的任何显示器都位于墙纸的另一块瓷砖上。

让我们在图片中看到它:

我们有实际的桌面,它使用四块墙纸图像(红色)。

现在是编写代码的时候了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多