1

我想在鼠标悬停时找到控制手柄位于其他下方,但它只在上方找到控制(使用WindowFromPointChildWindowFromPoint等不起作用)。

有什么建议吗?

4

1 回答 1

2

您可以使用GetNextWindowWin32 API 调用来检索 Z-Order 中位于此窗口下方的下一个窗口。

算法可能是这样的:

  1. 获取初始窗口HWND hwnd = ChildWindowFromPoint(hwndParent, point);
  2. 如果hwnd是抢手的窗口则停止
  3. hwnd = GetNextWindow(hwnd, GW_HWNDNEXT);
  4. 如果hwnd包含point则转到 2
  5. 否则转到 3。

另一种方法 - 只需枚举对话框或视图上的所有控件,将它们的矩形和句柄存储在某个容器中并手动进行点检查。

于 2012-10-18T11:47:45.350 回答