2017-11-14 6 views
0

API GetCursorPosとアプリケーションのハンドル(HWND)を使用してマウスのクリック位置を知っています。マウスのクリック位置を確認する方法は、必要なアプリケーションにありますか?

このアプリケーションでマウスのクリック位置を確認するにはどうすればよいですか?

マイビュー:

  • は、そのハンドルからアプリケーションのバウンディングボックスを取得します。 (GetWindowRect(hWnd, &rect);
  • カーソル位置のチェックは、このバウンディングボックス内にあります。 (PtInRect(&rect, p)

ウィンドウが重なっている場合、これは機能しません。

+0

。 – iBug

+0

@iBugはいこれが問題です。 – Swapnil

+3

マウスカーソルの下にある 'HWND'を得るには、[' WindowFromPoint() '](https://msdn.microsoft.com/en-us/library/windows/desktop/ms633558.aspx)を見てください。 –

答えて

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 
} 
関連する問題