什么决定什么时候窗口最大化到另一台显示器上?

时间:2012-03-17 08:17:16

标签: winapi positioning silverlight-5.0 maximize-window

我一直在使用P / Invoke(后跟帖子)来支持Silverlight 5的多显示器。在播放时,我注意到窗口大小和位置将决定我的两个监视器中哪一个最大化了。我继续玩(和你一样)并确定:

  • 我的笔记本电脑(1280 x 800)左侧为主屏幕,显示器(1024 x 768)位于右侧,公式为左= - (宽度/ 2)+ 1271
  • 我的显示器(1024 x 768)左侧为主显示器,笔记本电脑(1280 x 800)位于右侧,公式为左= - (宽度/ 2)+ 1014
  • 我的显示器(1024 x 768)位于左侧,笔记本电脑(1280 x 800)位于右侧作为主要位置,公式为左= - (宽度/ 2) - 11
  • 我的笔记本电脑(1280 x 800)在左侧,显示器(1024 x 768)在右侧作为主要,公式为左= - (宽度/ 2) - 10

看起来应该有一个模式(常数=屏幕宽度 - 左边是主要的10,右边是主要的常数= -10),但这并不准确。我目前没有其他显示器可供查看。任何人都知道它应该是什么,或者这只是我特定设置的人工制品?

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

1 个答案:

答案 0 :(得分:2)

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

  

MonitorFromWindow函数检索显示监视器的句柄,该句柄与指定窗口的边界矩形具有最大的交叉区域。

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