[API] WindowFromPoint and Popup Form

  • Thread starter Alessandro Baraldi
  • Start date
A

Alessandro Baraldi

My action start on Form_MouseDown, where i set a flagmemory.
I need to detect on Form_MouseUp Event if the MousePointer is on
MDIClient area.

So if the Form is not Popup this way work good:

hWndMDI = FindWindowEx(Application.hWndAccessApp, _
0&, _
"MDIClient", _
vbNullString)
rValue = GetCursorPos(pt)

Handle = WindowFromPoint(pt.x, pt.y)

If hWndMDI <>handle Then
' No you are not on MDI_Client
Else
' Yes MDI is under Mouse
End if

If my Form is Popup the Handle i can get is Application.hWndAccessApp
and not MDIClient
so i can't have a right detection...!

How can i get the MDIClient Handle even if my form is Popup, How can i
detect if my pointer
is really on MDIClient...?

May be using:

GetWindowRect hWndMDI , rectParent

and if X position is more then rectParent.TOP my pointer is
inside....?(i don't like it)

Thank's

@Alex
 
A

Alessandro Baraldi

Alessandro Baraldi ha scritto:
My action start on Form_MouseDown, where i set a flagmemory.
I need to detect on Form_MouseUp Event if the MousePointer is on
MDIClient area.

So if the Form is not Popup this way work good:

hWndMDI = FindWindowEx(Application.hWndAccessApp, _
0&, _
"MDIClient", _
vbNullString)
rValue = GetCursorPos(pt)

Handle = WindowFromPoint(pt.x, pt.y)

If hWndMDI <>handle Then
' No you are not on MDI_Client
Else
' Yes MDI is under Mouse
End if

If my Form is Popup the Handle i can get is Application.hWndAccessApp
and not MDIClient
so i can't have a right detection...!

How can i get the MDIClient Handle even if my form is Popup, How can i
detect if my pointer
is really on MDIClient...?

May be using:

GetWindowRect hWndMDI , rectParent

and if X position is more then rectParent.TOP my pointer is
inside....?(i don't like it)

Thank's

@Alex

At last is Pointe.Y>rectParent.TOP to be on MDIClient...!

This solution Work, but i don't know if it's a right one....

@Alex
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top