positions de la souris sur une fenêtre fille d'un MDIgadget?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

positions de la souris sur une fenêtre fille d'un MDIgadget?

Message par comtois »

j'ai fait ce code pour tester , et WindowMouseX() me donne la position de la souris sur la fenêtre principale , alors que ma fenêtre fille est active , j'aimerais que ça me retourne la position par rapport à cette fenêtre , comment faire ?

il y a aussi DesktopMouseX() qui est étrange, dès que je quitte la fenêtre principale , il n'est plus rafraichit . à la limite on peut le déduire parce que WindowMouseX() passe à -1 , mais bon , la référence c'est toujours la fenêtre principale , jamais la fenêtre fille !

Code : Tout sélectionner

If OpenWindow(0,0,0,400,300,#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget,"MDIGadget") 
  If CreateGadgetList(WindowID(0)) And CreateMenu(0, WindowID(0)) 
    MenuTitle("Menu index 0") 
    MenuTitle("MDI windows menu") 
    MenuItem(0, "self created item") 
    MenuItem(1, "self created item") 
    
    MDIGadget(0, 0, 0, 0, 0, 1, 2, #PB_MDI_AutoSize) 
    FilleID = AddGadgetItem(0, -1, "child window") 
    ; add gadgets here... 
    CloseGadgetList() 
    If CreateStatusBar(0, FilleID) 
      AddStatusBarField(100) 
      AddStatusBarField(100) 
   
    EndIf 
    
   
  EndIf 
  Repeat 
     StatusBarText(0, 0, Str(WindowMouseX()) + " / " + Str(WindowMouseY())) 
    
    StatusBarText(0, 1, Str(DesktopMouseX()) + " / " + Str(DesktopMouseY())) 
    
  Until WaitWindowEvent()=#PB_Event_CloseWindow 
EndIf 
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Code : Tout sélectionner

If OpenWindow(0,0,0,400,300,#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget,"MDIGadget") 
  If CreateGadgetList(WindowID(0)) And CreateMenu(0, WindowID(0)) 
    MenuTitle("Menu index 0") 
    MenuTitle("MDI windows menu") 
    MenuItem(0, "self created item") 
    MenuItem(1, "self created item") 
    
    MDIGadget(0, 0, 0, 0, 0, 1, 2, #PB_MDI_AutoSize) 
    FilleID = AddGadgetItem(0, -1, "child window")
    ; add gadgets here... 
    CloseGadgetList() 
    If CreateStatusBar(0, FilleID) 
      AddStatusBarField(100) 
      AddStatusBarField(100)  
    EndIf 
     
  EndIf 
  Repeat
    ;Utilises GetCursorPos ou Les Fonctions dePure
    ;---------------------------------------------
    ;GetCursorPos_(point.point)
    ;--------------   ou   -----------------------    
    point.point
    point\x = DesktopMouseX() 
    point\y = DesktopMouseY()
    ;---------------------------------------------    
    ScreenToClient_(FilleID,@point)
    StatusBarText(0, 0, Str(point\x) + " / " + Str(point\y))  
  Until WaitWindowEvent()=#PB_Event_CloseWindow 
EndIf 
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Merci Nico :)

Je cherche toujours des solutions sans utiliser les Api Window , mais je m'aperçois qu'il est difficile d'y échapper :?
Répondre