Page 1 sur 1
Désactiver la croix de fermeture de fenêtre
Publié : ven. 11/févr./2005 15:01
par Anonyme2
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

Publié : ven. 11/févr./2005 15:28
par Le Soldat Inconnu
désactiver ??
ne pas l'afficher tu veux dire. ou mettre en gris le bouton ?
Publié : ven. 11/févr./2005 16:00
par Anonyme2
Mettre en gris
Publié : ven. 11/févr./2005 16:32
par nico
Si je me souviens bien, il faut désactiver le menu correspondant dans le système menu.
Publié : ven. 11/févr./2005 16:51
par nico
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)
Publié : ven. 11/févr./2005 17:07
par Anonyme2
Merci Nico,
je vais tester tout de suite

Publié : ven. 11/févr./2005 17:31
par nico
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)
Publié : ven. 11/févr./2005 18:16
par Anonyme2
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.
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())
Publié : ven. 11/févr./2005 19:01
par KarLKoX
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