| auteur : Progi1984 |
Pour cela, nous utilisons la fonction SendMessage() de l'API Windows pour envoyer un message au StringGadget lui demandant d'annuler sa dernière modification.
If OpenWindow(0 , 100 , 200 , 200 , 200 , " Annulation - undo " )
If CreateGadgetList(WindowID(0 ))
StringGadget(0 , 0 , 0 , 100 , 20 , " Texte initial " )
ButtonGadget(1 , 100 , 100 , 100 , 100 , " Annuler " )
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = # PB_Event_CloseWindow
Quit = 1
EndIf
If EventID = # PB_Event_Gadget
GadgetID = EventGadget()
If GadgetID = 1
SendMessage_(GadgetID(0 ), # EM_UNDO , 0 , 0 )
EndIf
EndIf
Until Quit = 1
EndIf
|
|
| auteur : Progi1984 |
La gestion des gadgets dans une fenêtre est réalisée via une GadgetList. Il suffit d'ouvrir cette GadgetList et d'y ajouter le gadget souhaité.
Declare AjouteGadget(No, x, y, width, height, texte.s)
If OpenWindow(0 , 100 , 200 , 200 , 200 , " Ajout gadgets " )
If CreateGadgetList(WindowID(0 ))
ButtonGadget(0 , 0 , 0 , 100 , 100 , " Bouton 0 " )
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = # PB_Event_CloseWindow
Quit = 1
ElseIf EventID = # PB_Event_Gadget
Select EventGadget()
Case 0
AjouteGadget(1 , 100 , 100 , 100 , 100 , " Bouton 1 " )
Case 1
If IsGadget(2 )= 0
AjouteGadget(2 , 0 , 100 , 100 , 100 , " Bouton 2 " )
EndIf
EndSelect
EndIf
Until Quit = 1
EndIf
Procedure AjouteGadget(No, x, y, width, height, texte.s)
If OpenGadgetList(0 )
ButtonGadget(No, x, y, width, height, texte)
EndIf
EndProcedure
|
|
| auteur : Nico |
En testant le message #WM_SETCURSOR
- wParam renvoie le Handle du gadget sur lequel se trouve la souris.
- GetDlgCtrlID_() renvoie l'identifiant du gadget.
Il faut que l'ID du Gadget soit supérieur à zéro car le message renvoie null s'il n'est pas au dessus un Gadget.
De plus le gadget ne sera pas détecté s'il est désactivé.
Procedure ProcedureCallback(WindowID, Message, wParam, lParam)
Select Message
Case # WM_SETCURSOR
SetWindowTitle(0 ," Handle= " + Str(wParam)+ " , " + " ID= " + Str(GetDlgCtrlID_(wParam)))
EndSelect
ProcedureReturn # PB_ProcessPureBasicEvents
EndProcedure
Enumeration
# Window
# StringG
# Button
# CheckBox
EndEnumeration
If OpenWindow(# Window ,0 ,0 ,400 ,400 ," PureBasic " ,# PB_Window_SystemMenu | # PB_Window_ScreenCentered )
CreateGadgetList(WindowID(# Window ))
StringGadget(# StringG , 20 , 20 , 200 , 20 , " StringGadget Normal ... " )
ButtonGadget(# Button , 20 , 60 , 200 , 20 , " Bouton Standard " )
CheckBoxGadget(# CheckBox , 20 , 100 , 200 , 20 , " CheckBox standard " )
SetWindowCallback(@ProcedureCallback())
Repeat
EventID.l= WaitWindowEvent()
Select EventID
Case # WM_CLOSE
Quit= 1
EndSelect
Until Quit= 1
EndIf
|
|
Consultez les autres F.A.Q's
Les sources présentés sur cette pages sont libre de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2008
Developpez LLC. Tout droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérets.
Cette page est déposée à la SACD.
|