Windows API:获取焦点监视器(活动窗口)的方法?

时间:2017-08-25 08:00:14

标签: winapi

使用Windows API,有没有办法让屏幕显示当前活动窗口。

2 个答案:

答案 0 :(得分:1)

粗略的步骤是:

  1. GetActiveWindow / GetForegroundWindow
  2. GetWindowRect
  3. 的GetDC
  4. CreateCompatibleDC
  5. CreateCompatibleBitmap
  6. 的BitBlt

答案 1 :(得分:0)

简短的回答是API无法直接执行此操作。给定窗口可以通过设备上下文进行交互,但是无法通过API调用确定多监视器系统中哪个监视器显示该窗口。实际上,它可能会显示在多个上面。

答案很长,您可以通过检索桌面GetWindowRect()上的窗口物理位置,使用ClientToScreen()将其转换为屏幕坐标,然后计算它所在的枚举显示设备来计算它。

我没有代表发布超过2个链接,但MSDN已经列出了这些功能。

GetDC()

GetWindowRect()

ClientToScreen() - https://msdn.microsoft.com/en-us/library/windows/desktop/dd183434(v=vs.85).aspx

EnumDisplayDevices()

EnumDisplaySettingsEx - https://msdn.microsoft.com/en-us/library/windows/desktop/dd162612(v=vs.85).aspx