
Code : Tout sélectionner
; PureBasic Visual Designer v3.80 build 1249
;- Window Constants
;
Enumeration ;Les enumeration des menus pour les reprendre apres.
#Window_1
;- MenuBar Constants
#MenuBar_4
;- Saisi du texte (gadget)
#Gadget_2
#MENU_27
#MENU_26
#MENU_29
#MENU_25
#MENU_35
#MENU_41
#MENU_44
#MENU_45
#MENU_46
#MENU_49
#MENU_50
#MENU_53
#MENU_58
#MENU_55
#MENU_56
#MENU_59
#MENU_64
#MENU_75
;- StatusBar Constants
#StatusBar_0
EndEnumeration
Procedure Open_Window_1()
;/ 1° Pas besoin d'être à la fois #ScreenCentered et #WindowCentered
If OpenWindow(#Window_1, 0, 0, 400, 200, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered, "Garzul note pad")
;/ 2° Si tu veux pouvoir redimensionner les différents gadgets, il faut que tu leur
;/ donne leur position et leur dimension par rapport à la fenêtre. Il faut également
;/ tenir compte des dimensions de la StatusBar, si il y en a une
If CreateGadgetList(WindowID(0)) ;je cree le gadget saisie de texte dans windows
StringGadget(0,10,10,WindowWidth()-20,WindowHeight()-60,"",#PB_String_MultiLine|#ES_AUTOVSCROLL|#WS_VSCROLL|#WS_HSCROLL|#ESB_DISABLE_LEFT|#ESB_DISABLE_RIGHT) ;Je cree la scrolbar ainsi que le retour a la ligne
;terminer pour le saisie de texte
If CreateMenu(#MenuBar_4, WindowID())
MenuTitle("Fichier")
MenuItem(#MENU_27, "Nouveau")
MenuItem(#MENU_26, "Ouvrir")
MenuItem(#MENU_29, "Enregistrer")
MenuItem(#MENU_25, "Enregistrer sous ...")
MenuBar()
MenuItem(#MENU_35, "Imprimer")
MenuBar()
MenuItem(#MENU_41, "Quitter")
MenuTitle("Edition")
MenuItem(#MENU_44, "Couper")
MenuItem(#MENU_45, "Copier")
MenuItem(#MENU_46, "Coller")
MenuItem(#MENU_49, "Supprimer")
MenuBar()
MenuItem(#MENU_50, "Selectioner tout")
MenuItem(#MENU_53, "Heure/Dates")
MenuItem(#MENU_58, "Couleur du texte")
MenuTitle("Format")
MenuItem(#MENU_55, "Polices")
MenuItem(#MENU_56, "Retour auto a la ligne")
MenuTitle("Affichage")
MenuItem(#MENU_59, "Barre d'etat")
MenuTitle("?")
MenuItem(#MENU_64, "Aide")
MenuBar()
MenuItem(#MENU_75, "A propos du garzul note pad")
EndIf
If CreateStatusBar(#StatusBar_0, WindowID())
AddStatusBarField(550)
StatusBarText(#StatusBar_0, 0, "field")
EndIf
If CreateGadgetList(WindowID())
EndIf
EndIf
ResizeGadget(0,-1,-1,WindowWidth()-20,WindowHeight()-60)
EndIf
EndProcedure
; =====================================
;- Debut du programme
; On initialise tous d'abord les valeurs
; On affiche la fenêtre les boutons
; On lance la boucle de gestion des évènements de la fenêtre ouverte
;******************* faut le mettre avant la boucle !!!
Open_Window_1()
; If CreateStatusBar(#StatusBar_0, WindowID())
; AddStatusBarField(WindowWidth()) ;<--- La aussi, il faut donner la dimension de la fenêtre
; StatusBarText(#StatusBar_0, 0, "field")
; EndIf
; *****************************************
Repeat
Select WaitWindowEvent()
; #PB_Event_SizeWindow détecte si les dimensions de la fenêtre ont changées
Case #PB_Event_CloseWindow
Quit = #TRUE
Case #PB_Event_SizeWindow
ResizeGadget(0,-1,-1,WindowWidth()-20,WindowHeight()-60)
;/ Si tu mets la StatusBar dans la boucle au niveau de l'evenement #PB_Event_SizeWindow
;/ elle est réactualisée au fur et à mesure que tu redimensionne la fenêtre.
;/ C'est pas très correct, comme méthode, mais ça évite de passer par une CallBack
;/ Et si tu as plusieurs champs dans la status, ils sont redimensionnés en proportion.
;/ Pour les CallBacks, on verra ça à une date ultérieure
FreeStatusBar(#StatusBar_0)
If CreateStatusBar(#StatusBar_0, WindowID())
AddStatusBarField(WindowWidth()/3)
AddStatusBarField((WindowWidth()/3)*2) ;<--- La aussi, il faut donner la dimension de la fenêtre
StatusBarText(#StatusBar_0, 0, "field")
EndIf
;- Choisir l'ouverture des menu cool:)
Case #PB_Event_Menu
Select EventMenuID()
Case #MENU_26
FileName.s = OpenFileRequester("Choisissez un fichier", "C:\Nouveau projet.txt", ".txt", 0)
Case #MENU_35
PrintRequester()
; ...
EndSelect
Debug "menu numero "+Str(menuID):; cette ligne va afficher le numero du menu choisi !!
; a toi dans faire ce que tu veux !!
;fin des ouverture des menu
Case #PB_Event_Gadget
GadgetID = EventGadgetID(): ; lequel ??
Debug GadgetID
EndSelect
Until Quit
End
merci de maider c ccolStartPrinting(NomJob$)
