Au passage de la souris, l'API WindowFromPoint_ ne retourne pas les handles des TextGadgets lorsque ceux-ci appartiennent à la même fenêtre.
Si on lance 2 fois ce programme, chaque programme détecte parfaitement le TextGadget de l'autre, mais pas les leurs.
Code : Tout sélectionner
; PB 4.00
Enumeration
#Window_0
EndEnumeration
CurPos.POINT
hWnd=OpenWindow(#Window_0,300,200,350,80,"",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget,0)
CreateGadgetList(hWnd)
handle_1=TextGadget(1,200,25,200,25,"TEST TEXTGADGET")
handle_2=ButtonGadget(2,10,25,150,25,"TEST BOUTON")
SetGadgetText(1,"TEST TEXTGADGET "+Str(handle_1))
SetGadgetText(2,"TEST BOUTON "+Str(handle_2))
SetTimer_(hWnd,1,50,0)
Repeat
GetCursorPos_(CurPos)
Handle = WindowFromPoint_(CurPos\x,CurPos\y)
x_mouse_screen=CurPos\x
y_mouse_screen=CurPos\y
ScreenToClient_(handle,@CurPos)
x_mouse_gadget=CurPos\x
y_mouse_gadget=CurPos\y
Select WaitWindowEvent()
Case #WM_TIMER
SetWindowTitle(#Window_0,"HANDLE"+Str(Handle)+" MOUSE= ["+Str(x_mouse_screen)+" "+Str(y_mouse_screen)+"] ["+Str(x_mouse_gadget)+" "+Str(y_mouse_gadget)+"]")
Case #PB_Event_CloseWindow
KillTimer_(hWnd,1)
End
EndSelect
ForEver
Merci de regarder.
A +