Page 1 sur 1

Disparition de la souris : qu'est ce que je fais de mal ?

Publié : mar. 10/janv./2006 23:54
par olivier
Salut à tous

Voila une petite fenetre où la souris disparait au milieu.... Normalement !
Mais cela ne marche pas vraiment.
Auriez vous une idée ?
Merci d'avance

Code : Tout sélectionner

OpenWindow(0,10,10,200,200,#PB_Window_SystemMenu,"")

Repeat
    EventID = WaitWindowEvent()
    
    Select EventID
        Case #WM_MOUSEMOVE

            If WindowMouseX()>50 And WindowMouseX()<150 And WindowMouseY()>50 And WindowMouseY()<150
                Debug "zone invisible"
                ShowCursor_(0)
            Else
                Debug "zone VIsible"
                ShowCursor_(1)
            EndIf
            
    EndSelect
    
Until EventID = #PB_EventCloseWindow

Publié : mer. 11/janv./2006 0:16
par filperj
Je crois que le prob vient du fait que ShowCursor n'agit pas directement sur le pointeur: en fait, ça incrémente/décrémente un compteur, et le pointeur est affiché ou non selon que le compteur est positif ou négatif...

En mémorisant l'état du pointeur et en appelant la fonction que quand cet état doit être changé, ça a l'air de mieux marcher:

Code : Tout sélectionner


OpenWindow(0,10,10,200,200,#PB_Window_SystemMenu,"")

Global MouseVisible.l
MouseVisible = #True

Repeat
    EventID = WaitWindowEvent()
   
    Select EventID
        Case #WM_MOUSEMOVE

            If WindowMouseX()>50 And WindowMouseX()<150 And WindowMouseY()>50 And WindowMouseY()<150
                Debug "zone invisible"
                If MouseVisible
                  ShowCursor_(0)
                  MouseVisible = #False
                EndIf
            Else
                Debug "zone VIsible"
                If MouseVisible = #False
                  ShowCursor_(1)
                  MouseVisible = #True
                EndIf
            EndIf
           
    EndSelect
   
Until EventID = #PB_EventCloseWindow

Publié : mer. 11/janv./2006 0:53
par olivier
Ah ben là je comprends mieux !

Merci Filperj et bonne nuit 8O