当我拿到手柄时,我想检测一个窗口在哪个屏幕上显示。我在Win API中找到了SetWindowPos()
函数,但不幸的是GetWindowPos()
只有GetWindowRect()
,但这导致了一些奇数值。
我有两个设备,一个1280x1024,右一个(主要)1680x1050。当我想获得最小化的firefox的位置时,我得到两个屏幕的b / l / r / t -31973 / -32000 / -31840 / -32000。
我怎么知道这是我的左边还是右边的屏幕?
答案 0 :(得分:2)
尝试GetWindowPlacement
,以便找到窗口在恢复后将使用的矩形。
答案 1 :(得分:2)
WinAPI具有MonitorFromRect
功能,这可能就是您所需要的。我不确定是否有C#等价物,但你可以通过互操作来调用它。
请注意,窗口可以位于两个显示器上,也可以两者都不显示。 API具有标志,例如MONITOR_DEFAULTTONEAREST
。