如何检查鼠标点击位置是否在所需的应用程序上?

时间:2017-11-14 05:18:26

标签: c++ winapi window

我知道使用API​​ GetCursorPos的鼠标点击位置和应用程序句柄(HWND)。

如何检查此应用程序上的鼠标点击位置?

我的观点:

  • 从其句柄中获取应用程序的边界框。 (GetWindowRect(hWnd, &rect);
  • 检查光标位置是否在此边界框中。 (PtInRect(&rect, p)

如果窗口重叠,则无效。

1 个答案:

答案 0 :(得分:0)

我们知道目标屏幕句柄的手柄并单击光标位置:

// hWnd : Already known windows handle

GetCursorPos(&p);
HWND hWndFromPoint = WindowFromPoint(p);

// If the handle got from click point is child of the desire window means it is clicked on the desire window itself.
if (IsChild(hWnd, hWndFromPoint))
{
    // Do something on Mouse click 
}