combobox et callback

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
toad31
Messages : 13
Inscription : lun. 27/juil./2009 18:38

combobox et callback

Message par toad31 »

Bonjour,

j'ai un soucis avec ma callback, lorsque j'active une combobox, ma callback ne voit plus les messages clavier. Je voudrais savoir si il y a un moyen de réactiver le clavier.

Merci d'avance.

----------------------------------

Exemple de code:

Code : Tout sélectionner

#Combo = 0
#Text = 1
Procedure.l Callback(Window, Message, wParam, lParam)
  result = #PB_ProcessPureBasicEvents
    If Message = #WM_COMMAND 
         If (wParam>>16) = #CBN_KILLFOCUS And lParam = GadgetID(#Combo)
                Debug "Gadget lost focus"
        ElseIf (wParam>>16) = #CBN_SELENDOK  And lParam = GadgetID(#Combo)
                ans.s =  GetGadgetText(#Combo)
                Debug ans
        ElseIf (wParam>>16) = #CBN_SETFOCUS And lParam = GadgetID(#Combo)
              Debug "Gadget has focus"
        EndIf
    EndIf
    If message = 256
      Debug "clavier"
    EndIf
ProcedureReturn result
EndProcedure

If OpenWindow(0, 0, 0, 400, 100, "ComboBox focus", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
    SetWindowCallback(@Callback())
    ComboBoxGadget(#Combo, 10, 10, 380, 300)
    AddGadgetItem(#Combo, -1, "Item Number 0")
    AddGadgetItem(#Combo, -1, "Item Number 1")
    AddGadgetItem(#Combo, -1, "Item Number 2")
    AddGadgetItem(#Combo, -1, "Item Number 3")
    StringGadget(#Text, 10, 40, 380, 20, "")
   Repeat
     Event = WaitWindowEvent()
   Until Event = #PB_Event_CloseWindow
EndIf
End
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: combobox et callback

Message par Chris »

Pour commencer, merci de mettre tes codes dans les balise.

If Message = 256

T'as pas une constante qui serait plus parlante que ce nombre?
Ton "256", tu l'as pas sorti de nulle part.
toad31
Messages : 13
Inscription : lun. 27/juil./2009 18:38

Re: combobox et callback

Message par toad31 »

c'est le message qui indique que j'ai enfoncé une touche du clavier. #WM_CHAR si tu veux.

------------------------------

Code : Tout sélectionner

#Combo = 0
#Text = 1
Procedure.l Callback(Window, Message, wParam, lParam)
result = #PB_ProcessPureBasicEvents
If Message = #WM_COMMAND
If (wParam>>16) = #CBN_KILLFOCUS And lParam = GadgetID(#Combo)
Debug "Gadget lost focus"
ElseIf (wParam>>16) = #CBN_SELENDOK And lParam = GadgetID(#Combo)
ans.s = GetGadgetText(#Combo)
Debug ans
ElseIf (wParam>>16) = #CBN_SETFOCUS And lParam = GadgetID(#Combo)
Debug "Gadget has focus"
EndIf
EndIf
If message = #WM_CHAR
Debug "clavier"
EndIf
ProcedureReturn result
EndProcedure

If OpenWindow(0, 0, 0, 400, 100, "ComboBox focus", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
SetWindowCallback(@Callback())
ComboBoxGadget(#Combo, 10, 10, 380, 300)
AddGadgetItem(#Combo, -1, "Item Number 0")
AddGadgetItem(#Combo, -1, "Item Number 1")
AddGadgetItem(#Combo, -1, "Item Number 2")
AddGadgetItem(#Combo, -1, "Item Number 3")
StringGadget(#Text, 10, 40, 380, 20, "")
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
EndIf
End
zaphod
Messages : 135
Inscription : dim. 07/déc./2008 9:32

Re: combobox et callback

Message par zaphod »

...
Dernière modification par zaphod le dim. 27/mai/2012 7:30, modifié 1 fois.
toad31
Messages : 13
Inscription : lun. 27/juil./2009 18:38

Re: combobox et callback

Message par toad31 »

bah disons que je voudrais que l'evenement clavier soit géré dans la callback...
mais je pense avoir trouver,c est sans doute parce que la combobox a été crée dans la fenetre.
toad31
Messages : 13
Inscription : lun. 27/juil./2009 18:38

Re: combobox et callback

Message par toad31 »

j'ai trouvé une solution pour ceux que ca interesse. On peut remettre le focus sur la fenêtre principale avec SetFocus_().
Exemple SetFocus_(WindowID(0)) si "0" numero de la fenêtre.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: combobox et callback

Message par nico »

toad31 a écrit :bah disons que je voudrais que l'evenement clavier soit géré dans la callback...
mais je pense avoir trouver,c est sans doute parce que la combobox a été crée dans la fenetre.
Dans ce cas, il faut subclasser le controle et non la fenetre et encore je crois au il y a un edit a l interieur du combobox, il faut essayer.

desole pour les accents mais je tape depuis un clavier grec, et donc oui je suis en grece.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: combobox et callback

Message par Backup »

nico a écrit :
desole pour les accents mais je tape depuis un clavier grec, et donc oui je suis en grece.
ben fais gaffe a tes arrieres , ils ont pas bonne reputation les grecs :lol:
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: combobox et callback

Message par nico »

oui je m assoie que sur des chaises avec dossier,on ne sais jamais. :D
Répondre