gpt4 book ai didi

c++ - 如何获取给定监视器上存在的所有窗口的 HWND?

转载 作者:太空宇宙 更新时间:2023-11-04 15:12:17 30 4
gpt4 key购买 nike

GetDesktopWindow() 仅返回主桌面。我也试过 EnumDisplayMonitors(),但没有返回桌面句柄。

最佳答案

您可以使用可用的函数来执行此操作,如下所示:

方法 1(对于重叠监视器边界的窗口不太准确)

  1. 枚举所有窗口(EnumWindows())
  2. 使用 MonitorFromWindow() 忽略那些 不在监视器上 在您关心的监视器之外的监视器上。

方法二(更准确)

  1. 获取您关心的监视器的范围(GetMonitorInfo() 函数)
  2. 枚举所有窗口(EnumWindows())
  3. 检查每个窗口的轮廓矩形(GetWindowRect() 对于 XP,否则为 DwmGetWindowAttribute(DWMWA_EXTENDED_FRAME_BOUNDS))以查看它是否相交(IntersectRect()) 与监视器矩形。

关于c++ - 如何获取给定监视器上存在的所有窗口的 HWND?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52019848/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com