获取与我的窗口重叠的所有窗口

我想find所有窗口完全或部分重叠我的窗口(在它的顶部)。 作为一个特例,如果我有两个窗口句柄(hWnd1和hWnd2),我想查找hWnd2是否部分或完全重叠了hWnd1。 有问题的窗口是桌面窗口(而不是在同一过程中的小孩/兄弟姐妹)。

通过使用GW_HWNDPREV重复调用GetWindow()来迭代可能与你重叠的窗口。 使用GetWindowRect()来检查这个窗口是否与你的实际重叠。 没有两个已知窗口的捷径,只要检查GetWindow()是否在迭代时返回hWnd2。