winapi - 什么决定了窗口何时最大化到附加监视器上?

标签 winapi positioning silverlight-5.0 maximize-window

我一直致力于使用 P/Invoke(后续文章)通过 Silverlight 5 实现多显示器支持。在玩游戏时,我注意到窗口大小和位置将决定附加窗口最大化到我的两个显示器中的哪一个。我继续玩(就像你一样)并确定:

  • 我的笔记本电脑 (1280 x 800) 位于左侧作为主设备,显示器 (1024 x 768) 位于右侧,则公式为 Left = -(Width/2) + 1271
  • 我的显示器 (1024 x 768) 位于左侧作为主显示器,笔记本电脑 (1280 x 800) 位于右侧,则公式为 Left = -(Width/2) + 1014
  • 我的显示器 (1024 x 768) 位于左侧,笔记本电脑 (1280 x 800) 位于右侧作为主要显示器,公式为 Left = -(Width/2) - 11
  • 以左侧的笔记本电脑 (1280 x 800) 和右侧的显示器 (1024 x 768) 作为主要设备,公式为 Left = -(Width/2) - 10

看起来应该有一个模式(左边的主元素常量 = 屏幕宽度 - 10,右边的主元素常量 = -10),但它并不准确。我目前没有其他可用的监视器来检查。有人知道它应该是什么,或者这是否只是我特定设置的产物?

(注意:这些有限制 - 它们不适用于“左”或“宽度”的所有值)

最佳答案

此行为似乎与 MonitorFromWindow 的行为一致。来自文档:

The MonitorFromWindow function retrieves a handle to the display monitor that has the largest area of intersection with the bounding rectangle of a specified window.

检查这是否与您的计算一致。应该是这样。

关于winapi - 什么决定了窗口何时最大化到附加监视器上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9748403/

相关文章:

ios - SKScene 边界和定位

c# - 安装 VS 2015.1/.NET 4.6.1 后出现 Silverlight 5 SDK SLSvcUtil 错误

windows - 如何在事先不知道本地化名称的情况下使用 Windows 安全组?

windows - 如何通过扫描码(不是虚拟键码)获取键状态?

c - 判断两个文件是否属于同一个卷

jquery - 使用 jquery 悬停效果定位列表

jquery - CSS定位元素

asp.net - 与 Silverlight 5 的串行通信(COM 端口)

silverlight-5.0 - 打开图像时,WScript.Shell Run 给出 "No application is associated with the specified file for this operation."。

c - 如何以编程方式更改选定的文本字体/颜色?