Boutique Cinema 4D
Affichage des résultats 1 à 4 sur 4

Discussion: Récupérer Clique droit GeDialog.Command

  1. #1
    Pilier Avatar de gr4ph0s
    Date d'inscription
    mai 2013
    C4D version
    R16 Studio
    OS
    win 7 X64
    Messages
    905

    Récupérer Clique droit GeDialog.Command

    Hey ! c'est encore moi
    Voila je ne sais pas si c'est un bug ou non mais je suis incapable de savoir si il s'agit d'un click droit ou d'un click gauche dans un Command(self, id, msg).

    Pourtant sur la doc on peu lire que le basecontainer de Command contient ceci.
    BFM_ACTION_DP_MENUCLICK bool Right mouse button.
    Hors BFM_ACTION_DP_MENUCLICK n'est même pas définis dans le basecontainer ^^'

    J'ai aussi essayé avec getInputState et getInputEvent mais sans succès... Si quelqu'un à une piste je suis preneur

    ps: je suis en python et sur la r17

    Voici un petit code, le but étant d'arriver a detecter le click gauche et le click droit lors d'une action sur les tabs (switch/click sur tab)
    Code:
    import c4d
    
    
    class my_UI(c4d.gui.GeDialog):
        def CreateLayout(self):
            self.TabGroupBegin(1,c4d.BFH_CENTER)
            self.AddButton(2, c4d.BFH_CENTER,500, 20,  'button 1')
            self.AddButton(3, c4d.BFH_CENTER,500, 20,  'button 2')
            self.GroupEnd()
            return True
        
        def Command(self, id, msg):
            for index, value in msg:
               print "Index: %i, Value: %s" % (index, str(value))
            
            return True
    
    
    def main():
        test = my_UI()
        test.Open(c4d.DLG_TYPE_MODAL_RESIZEABLE)
    
    
    if __name__=='__main__':
        main()
    Dernière modification par gr4ph0s ; 17/05/2016 à 23h02.
    SDK Specialist
    MAXON Computer GmbH

  2. #2
    Gourou Avatar de valkaari
    Date d'inscription
    mai 2009
    C4D version
    Autre
    OS
    OSX / windows
    Messages
    2 882
    Pas mieux et si tu regarde ce post tu verra que t'es pas le seul à te poser la question

    Je comprends pas trop non plus.
    C'est plus direct pour le clavier. En bricolant ça donne un truc comme ça,

    Code:
    import c4d
    
    
    
    
    class my_UI(c4d.gui.GeDialog):
        leftMouse = 0
        rightMouse = 0
        
        def Message(self, msg, result):
           
     
            res = c4d.BaseContainer()
            c4d.gui.GetInputState(c4d.BFM_INPUT_MOUSE, c4d.BFM_INPUT_MOUSELEFT, res)
            if res[c4d.BFM_INPUT_VALUE] == 1 :
                self.leftMouse = 1
            
                
            c4d.gui.GetInputState(c4d.BFM_INPUT_MOUSE, c4d.BFM_INPUT_MOUSERIGHT, res)
            if res[c4d.BFM_INPUT_VALUE] == 1:
                self.rightMouse = 1
            
            
    
    
            return c4d.gui.GeDialog.Message(self, msg, result)
    
    
    
    
        def CreateLayout(self):
            self.TabGroupBegin(1234,c4d.BFH_CENTER)
            self.AddButton(1235, c4d.BFH_CENTER,500, 20,  'button 1')
            self.AddButton(1236, c4d.BFH_CENTER,500, 20,  'button 2')
            self.GroupEnd()
            self.AddButton(4, c4d.BFH_CENTER,500,20, 'quit')
    
    
    
    
            return True
        
        def Command(self, id, msg):
            if id == 4:
                self.Close()
    
    
            
            print self.leftMouse, self.rightMouse
            self.leftMouse = self.rightMouse = 0
    
    
    
    
            return True
    
    
    
    
    def main():
        test = my_UI()
        test.Open(c4d.DLG_TYPE_MODAL_RESIZEABLE)
    
    
    
    
    if __name__=='__main__':
        main()

  3. #3
    Pilier Avatar de gr4ph0s
    Date d'inscription
    mai 2013
    C4D version
    R16 Studio
    OS
    win 7 X64
    Messages
    905
    Étrange en gros Message est appelé plus souvent que Command? ^^'
    Car normalement ça devrais fonctionner dans Command. Enfin bon merci à toi !
    SDK Specialist
    MAXON Computer GmbH

  4. #4
    Gourou Avatar de valkaari
    Date d'inscription
    mai 2009
    C4D version
    Autre
    OS
    OSX / windows
    Messages
    2 882
    ça devrait fonctionner dans command oui. Message est appelé bien plus souvent que command même si tu ne fais que bouger la souris.

    C'est peut être lié aux threads je ne sais pas. (et je n'ai pas testé en c++)

Discussions similaires

  1. Crashs quand je clique sur le bouton pour aller chercher un fichier
    Par Colas dans le forum Forum professionnel
    Réponses: 0
    Dernier message: 17/04/2012, 20h08
  2. Déplacer des objet par cliqué glissé sans selection préalable ?
    Par marroon7 dans le forum Nouveaux membres
    Réponses: 2
    Dernier message: 01/03/2010, 15h25
  3. Reboot PC dès que je clique quelque part
    Par Nikouf dans le forum Nouveaux membres
    Réponses: 10
    Dernier message: 09/01/2006, 22h49

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •  
Mediaworks - Logiciels 3D | Design Internet - Creation site internet