2

当我得到它的句柄时,我想检测一个窗口显示在哪个屏幕上。我SetWindowPos()在 Win API 中找到了一个函数,但不幸的是不GetWindowPos()只是 a GetWindowRect(),但这会产生一些奇怪的值。

我有两台设备,左边一台 1280x1024,右边一台(主要)1680x1050。当我想获得最小化 Firefox 的位置时,我会在任一屏幕上获得 b/l/r/t -31973/-32000/-31840/-32000。

我怎么知道这是我的左屏还是右屏?

4

2 回答 2

2

尝试GetWindowPlacement,以便找到窗口在恢复后将使用的矩形。

于 2012-07-11T21:33:24.720 回答
2

WinAPI 有一个MonitorFromRect函数,这可能是你需要的。我不确定是否有 C# 等价物,但您可以通过互操作调用它。

请注意,该窗口可以在两个监视器上,也可以不在两个监视器上。API 有相应的标志,例如MONITOR_DEFAULTTONEAREST.

于 2012-07-11T21:47:15.770 回答