Private Declare PtrSafe Function WindowFromPoint Lib "user32" (ByVal xPoint As LongPtr, ByVal yPoint As LongPtr) As LongPtr
Declare PtrSafe Function WindowFromPoint Lib "user32" Alias "WindowFromPoint" (ByVal xPoint As Long, ByVal yPoint As Long) As LongPtr
HandleUF As Long
HandleUF As LongPtr
Private Declare PtrSafe Function GetClassNameA Lib "user32" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare PtrSafe Function GetClassNameA Lib "user32" (ByVal hwnd As LongPtr, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Function GetComborectangle(ByVal CtrL As Object)
Dim pos As POINTAPI, ClassName As String, HandleControl As LongPtr, HandleParent As LongPtr, r As RECT
ClassName = Space(255)
GetCursorPos pos
HandleControl = WindowFromPoint(pos.X, pos.Y)
HandleParent = GetParent(HandleControl)
GetClassNameA HandleParent, ClassName, 255
GetComborectangle = GetWindowRect(HandleControl, r)
'pour la démo
UserForm1.TextBox1 = ClassName
UserForm1.TextBox2 = HandleParent
UserForm1.TextBox3 = HandleControl
End Function
Function GetComborectangle(ByVal CtrL As Object)
Dim pos As POINTAPI, ClassName As String, HandleControl As LongPtr, HandleParent As LongPtr, r As RECT
'buffer string de 255 caractères
ClassName = Space(255)
'recup de position
GetCursorPos pos
'handle desous le curseur
HandleControl = WindowFromPoint(pos.X, pos.Y)
'handleparent du handle sous le curseur
HandleParent = GetParent(HandleControl)
'recupération de la classe de fenetre du handleparent dans la variable "classename"
GetClassNameA HandleParent, ClassName, 255
'normalement si la souris est dans le child la classe est "F3 MdcPopup XXXXXXXX"
' ca c'est sensé renvoyé le rect 'c'est pour plus tard
GetComborectangle = GetWindowRect(HandleControl, r)
'pour la démo
' incription des données dans les textbox du userform
UserForm1.TextBox1 = ClassName
UserForm1.TextBox2 = HandleParent
UserForm1.TextBox3 = HandleControl
End Function
Je pense que c'est la même chose qu'un gars a mis en Web Page.Si j'étais moi, je regarderais plutôt là-dessous
C'est une idée mais ça ne marchait pas tout le temps. Je pourrais ré-essayer.te reste plus que setfocus et getfocus alors ça c'est universel