Désactiver la croix de fermeture de fenêtre
Désactiver la croix de fermeture de fenêtre
J'ai pas trop envie de chercher (oui ça arrive
) alors si vous savez comment désactiver la croix de fermeture d'une fenêtre (en haut à droite) merci de me mettre un exemple 
-
Le Soldat Inconnu
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Code : Tout sélectionner
hSysMenu = GetSystemMenu_(WindowID(0), #False)
nb = GetMenuItemCount_(hSysMenu)
;Tu peux utiliser #MF_DISABLED OU #MF_REMOVE
RemoveMenu_(hSysMenu, nb - 1, #MF_REMOVE | #MF_BYPOSITION)
RemoveMenu_(hSysMenu, nb - 2, #MF_REMOVE | #MF_BYPOSITION)D'une manière générale, on fera ça:
Code : Tout sélectionner
hSysMenu = GetSystemMenu_(WindowID(0), #False)
RemoveMenu_(hSysMenu, #SC_CLOSE,#MF_BYCOMMAND)Après essai, remove supprime l'élément du menu et désactive bien la croix ou les autres boutons en fonction de la position, mais je ne suis pas parvenu à réctiver la croix avec removemenu (normal puisque l'élément a été supprimé).
J'avais besoin de désactiver la croix puis de la réctiver et j'ai fait comme ceci et ça marche impect.
et pour réactiver
J'avais besoin de désactiver la croix puis de la réctiver et j'ai fait comme ceci et ça marche impect.
Code : Tout sélectionner
hSysMenu = GetSystemMenu_(WindowID(), #False)
Nb = GetMenuItemCount_(hSysMenu)
EnableMenuItem_(hSysMenu, Nb - 1, #MF_DISABLED | #MF_BYPOSITION)
DrawMenuBar_(WindowID())
et pour réactiver
Code : Tout sélectionner
EnableMenuItem_(hSysMenu, Nb - 1, #MF_ENABLED | #MF_BYPOSITION)
DrawMenuBar_(WindowID())
Code : Tout sélectionner
Procedure SetMenuQuitState(OnOff.l)
hSysMenu = GetSystemMenu_(WindowID(), #False)
Nb = GetMenuItemCount_(hSysMenu)
EnableMenuItem_(hSysMenu, Nb - 1, OnOff | #MF_BYPOSITION)
DrawMenuBar_(WindowID())
EndProcedure
OnOff = 0
If OpenWindow(0, 200, 200, 200, 100, #PB_Window_SystemMenu, "Menu Example") And CreateGadgetList(WindowID(0))
If CreateMenu(0, WindowID())
MenuTitle("Project")
MenuItem(1, "Open" +Chr(9)+"Ctrl+O")
MenuItem(2, "Save" +Chr(9)+"Ctrl+S")
MenuItem(3, "Save as"+Chr(9)+"Ctrl+A")
MenuItem(4, "Close" +Chr(9)+"Ctrl+C")
ButtonGadget(5, 10, 10, 180, 20, "Standard Button")
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
Quit = 1
ElseIf EventID = #PB_EventGadget
If EventGadgetID() = 5
If OnOff
SetMenuQuitState(#false)
OnOff = #false
Else
SetMenuQuitState(#True)
OnOff = #true
EndIf
EndIf
EndIf
Until Quit
EndIf
"Qui baise trop bouffe un poil." P. Desproges