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.
Hors BFM_ACTION_DP_MENUCLICK n'est même pas définis dans le basecontainer ^^'
BFM_ACTION_DP_MENUCLICK bool Right mouse button.
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
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()
É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
ç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++)