postmessage_( et clique sur un boutton

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

postmessage_( et clique sur un boutton

Message par olivier »

Bien le bonjour à tous :D

Voilà, pour ne pas à avoir à répéter certaine action (comme la procedure pour quitter), j'aimerais faire en sorte que postmessage_( simule un clique sur un boutton.

Mais mes paramêtres n'ont pas l'air bon.... un petit coup de pouce SVP :?

Code : Tout sélectionner

OpenWindow (0,10,10,200,200, "ess", #PB_Window_SystemMenu  )
CreateGadgetList ( WindowID (0))
ButtonGadget(1,10,10,100,20,"Quitter")


Repeat
     event= WaitWindowEvent ()
     Select event
          Case #PB_Event_Gadget ; *****************Choix d'un bouton
               Select EventGadget()
                    Case 1
                         quit=1
                    Case 2
                         
               EndSelect
          Case #WM_CLOSE 
               PostMessage_(WindowID(0),#PB_Event_Gadget,1,1)
               
     EndSelect
Until quit=1
Vive le temps libre !
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

Code : Tout sélectionner

#BUTTON_ID = 1

Procedure ClickMe(hWnd.l)
  SendMessage_(hWnd, #WM_LBUTTONDOWN, 0, 0)
  SendMessage_(hWnd, #WM_LBUTTONUP, 0, 0)
EndProcedure

OpenWindow (0,10,10,200,200, "ess", #PB_Window_SystemMenu  )
CreateGadgetList ( WindowID (0))
ButtonGadget(#BUTTON_ID,10,10,100,20,"Quitter")

Repeat
     event= WaitWindowEvent ()
     Select event
          Case #PB_Event_Gadget ; *****************Choix d'un bouton
               Select EventGadget()
                    Case 1
                         quit=1
                    Case 2
                         
               EndSelect
          Case #WM_CLOSE
               ;PostMessage_(WindowID(0),#PB_Event_Gadget,1,1)
                ClickMe(GadgetID(#BUTTON_ID))
               
     EndSelect
Until quit=1
"Qui baise trop bouffe un poil." P. Desproges
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Message par olivier »

Merci, Karlkox, t'es un Boss 8)

Je pensais que l'on pouvais faire cela en un seul SendMessage, mais apparement non...

a+ et bonne fin de week end
Vive le temps libre !
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Avec un seul message, c'est possible, je vais regarder!
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Code : Tout sélectionner

#BUTTON_ID = 1 
#BUTTON_ID2=2

OpenWindow (0,10,10,200,200, "ess", #PB_Window_SystemMenu  ) 
CreateGadgetList ( WindowID (0)) 
ButtonGadget(#BUTTON_ID,10,10,100,20,"Un") 
ButtonGadget(#BUTTON_ID2,10,80,100,20,"Deux")

Repeat
  Event= WaitWindowEvent () 
  Select Event 
    Case #PB_Event_Gadget 
      Select EventGadget() 
        Case 1 
          Debug "1"
          
        Case 2 
          ;/avec ce message, lors de l'appui du bouton "Deux", cela déclenche 
          ;/un évènement du bouton "Un" comme si on avait cliqué sur celui-ci.
          SendMessage_(WindowID(0),#WM_COMMAND,#BUTTON_ID,GadgetID(#BUTTON_ID))
          
      EndSelect 
    Case #WM_CLOSE 
      Quit=1

  EndSelect 
Until Quit=1 
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Message par olivier »

Je savais que le BOSS des BOSSSSS était parmis nous ! 8)

Merci Nico !

Le message est bizarre tout de même, devoir envoyer l'id du boutton sous 2 forme : #BUTTON_ID et GadgetID(#BUTTON_ID) ... :?

Je viens de regarder, le premier n'est pas nécessaire :
SendMessage_(WindowID(0),#WM_COMMAND,13849451,GadgetID(#BUTTON_ID))

Marche tres bien aussi.

Merci bien et bonne semaine à tous les travailleurs

Et vive le CPE.......non je déconne :wink:
Vive le temps libre !
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Non, ce n'est pas bizarre, c'est comme ça que la fenêtre reçoit normalement le message encore que j'ai simplifié en omettant la notification pour wparam qui doit être:notification<<16|id du gadget.

la notification peut être #WM_RBUTTONUP pour un click droit.


l'id du gadget n'est pas forcément unique alors que le handle oui, c'est pour cela que l'id est toujours reçu avec le handle en général.
Répondre