PureBasic

Forums PureBasic
Nous sommes le Lun 17/Juin/2019 1:48

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 4 messages ] 
Auteur Message
 Sujet du message: Routine de gestion de la souris
MessagePosté: Dim 11/Oct/2009 19:03 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 17/Déc/2007 12:44
Messages: 1628
Bonjour tout les MacOSien :),

Sur ce forum j'ai trouvais un code vraiment sympa de hestion des evements clique de la souris, mon seul problème est que je ne trouve pas de solution pour MacOS.

Quelqu'un aurais t'il une solution? Je remet a tout hazard le code de base et quelqu'un peux t'il m'aide a mettre cette demande sur le forum anglais?

Code:
Procedure.b MouseEvent(hWnd.l, hButton.l)
; GESTION DES EVENEMENTS DE LA SOURIE.
  CompilerSelect #PB_Compiler_OS
    CompilerCase #PB_OS_Windows
      If hWnd And GetForegroundWindow_() = hWnd
        Select hButton
          Case 0
            If GetAsyncKeyState_(#VK_LBUTTON) > 0
              ProcedureReturn #True
            EndIf
          Case 1
            If GetAsyncKeyState_(#VK_RBUTTON) > 0
              ProcedureReturn #True
            EndIf
          Case 2
            If GetAsyncKeyState_(#VK_MBUTTON) > 0
              ProcedureReturn #True
            EndIf
        EndSelect
      EndIf
    CompilerCase #PB_OS_Linux
      Protected gdkWnd.l, x.l, y.l, mask.l
      If hWnd
        Define *Window.GTKWindow = hWnd
        gdkWnd = *Window\bin\child\window
        gdk_window_get_pointer_(gdkWnd, @x, @y, @mask)
        Select hButton
          Case 0
            If (mask & #GDK_BUTTON1_MASK)
              ProcedureReturn #True
            EndIf
          Case 1
            If (mask & #GDK_BUTTON3_MASK)
              ProcedureReturn #True
            EndIf
          Case 2
            If (mask & #GDK_BUTTON2_MASK)
              ProcedureReturn #True
            EndIf
          EndSelect
      EndIf
    CompilerCase #PB_OS_MacOS
      If hWnd
      EndIf
  CompilerEndSelect
  ProcedureReturn #False

EndProcedure


Merci d'avance,
GallyHC

_________________
Image

Image

Image Official site of PureBasic
Image Official site of SpiderBasic

Configuration : Tower: Windows 7 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.62 (x86 et x64)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Routine de gestion de la souris
MessagePosté: Lun 12/Oct/2009 0:12 
Hors ligne

Inscription: Lun 26/Avr/2004 0:40
Messages: 14537
Citation:
j'ai trouvais

Citation:
de hestion des evements

Citation:
quelqu'un peux t'il m'aide
:roll:


quand je pense qu'on m'a viré du systeme scolaire traditionnel , dès la 6eme
parce que j'étais un cancre....

et que je lis des gens comme vous, qui êtes surement technicien,ingénieur,ou cadre
et qui faites des fautes d'orthographes et de grammaires de cet ordre là....

je sais pas moi, faites un effort , redonnez raisons a ceux qui ont jugé que j'étais un nul ...
écrivez comme il faut, ça me remettra a ma place de cancre ... :lol:

ps1: pourtant tu fais pas trop de fautes toi d'habitude :)

ps: sorry je n'ai pas de réponses pour ton problème


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Routine de gestion de la souris
MessagePosté: Lun 12/Oct/2009 11:03 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 17/Déc/2007 12:44
Messages: 1628
Bonjour,

Je ne suis pas terrible en orthographe, mais en général je fais attention. La j’ai tapé la demande très rapidement avant de partir. Merci de cette remise en place.

Amitié,
GallyHC

_________________
Image

Image

Image Official site of PureBasic
Image Official site of SpiderBasic

Configuration : Tower: Windows 7 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.62 (x86 et x64)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Routine de gestion de la souris
MessagePosté: Mer 01/Déc/2010 20:19 
Hors ligne

Inscription: Mer 21/Jan/2004 18:24
Messages: 1530
va sur le fofo anglais et fais une recherche sur "event mouse"... exemple de code qui me semble intéressant

Code:
#kEventClassMouse = 'mous'
#kEventMouseButtonPrimary = 1
#kEventMouseButtonSecondary = 2
#kEventMouseButtonTertiary = 3
#kEventMouseDown = 1
#kEventParamKeyModifiers = 'kmod'
#kEventParamMouseButton = 'mbtn'

#typeMouseButton = 'mbtn'
#typeUInt32 = 'magn'

ImportC ""
   GetEventClass(Event)
EndImport

Structure EventTypeSpec
   EventClass.L
   EventKind.L
EndStructure

Procedure EventHandler(*NextEventHandler, Event, UserData)
   Select GetEventClass(Event)
      Case #kEventClassMouse
         Select GetEventKind_(Event)
            Case #kEventMouseDown
               If GetEventParameter_(Event, #kEventParamMouseButton, #typeMouseButton, 0, 4, 0, @ButtonType) = 0
                  If GetEventParameter_(Event, #kEventParamKeyModifiers, #typeUInt32, 0, 4, 0, @KeyModifier) = 0
                     Select ButtonType
                        Case #kEventMouseButtonPrimary
                           If KeyModifier = $00001000
                              Debug "Right mouse button"
                           Else
                              Debug "Left mouse button"
                           EndIf
                        Case #kEventMouseButtonSecondary
                           Debug "Right mouse button"
                        Case #kEventMouseButtonTertiary
                           Debug "Middle mouse button"
                     EndSelect
                  EndIf
               EndIf
         EndSelect
   EndSelect

   If *NextEventHandler
      CallNextEventHandler_(*NextEventHandler, Event)
   EndIf
EndProcedure

OpenWindow(0, 100, 100, 400, 200, "Detect left, middle and right mouse button click")

EventHandlerUPP = NewEventHandlerUPP_(@EventHandler())
EventCount = 1
Dim EventTypes.EventTypeSpec(EventCount - 1)
EventTypes(0)\EventClass = #kEventClassMouse
EventTypes(0)\EventKind = #kEventMouseDown
InstallEventHandler_(GetWindowEventTarget_(WindowID(0)), EventHandlerUPP, EventCount, @EventTypes(), UserData, @EventHandlerRef)

Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow


non testé , je sais pas si ça marche...
correction, ça marche niquel ! reste plus qu'a testé le clic enfoncé / relaché

pat


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 4 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
cron

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye