2017-11-14 1 views
0

Ich kenne die Mausklick-Position mit API GetCursorPos und dem Handle der Anwendung (HWND).Wie überprüfen Sie die Mausklickposition auf der gewünschten Anwendung?

Wie kann ich überprüfen, Mausklick Position ist auf dieser Anwendung?

Meine Ansicht:

  • den Begrenzungsrahmen der Anwendung von seinem Griff Holen. (GetWindowRect(hWnd, &rect);)
  • Check-Cursor-Position liegt in dieser Bounding Box. (PtInRect(&rect, p))

Dies funktioniert nicht, wenn Fenster sich überlappen.

+0

Nein, es wird nicht, wenn ein anderes Fenster, um es überlappend ist. – iBug

+0

@iBug ja das ist das Problem damit. – Swapnil

+3

Betrachten Sie ['WindowFromPoint()'] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms633558.aspx), um das 'HWND' zu erhalten, das sich unter dem Mauszeiger befindet. –

Antwort

0

Wie wir den Griff gezielten Bildschirm Griff kennen und Cursorposition klicken:

// 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 
} 
Verwandte Themen