J'ai bien ce code pour ajouter des menus dans le menu système.
Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 3.92
;
; Explication du programme :
; Ajouter des éléments dans le SystemMenu
; Le SystemMenu est le menu qui apparait quand on fait clic droit sur le bouton du programme dans la barre des tâches.
; Ce code montre comment ajouter des éléments et des séparations
Procedure WindowCallback(WindowID, message, wParam, lParam)
result = #PB_ProcessPureBasicEvents
Select message
Case #WM_SYSCOMMAND
Select wParam
Case 20
MessageRequester("Info", "Menu 1", 0)
Case 21
MessageRequester("Info", "Menu 2", 0)
EndSelect
EndSelect
ProcedureReturn result
EndProcedure
; on ouvre une fenêtre avec un SystemMenu
OpenWindow(0, 200, 200, 200, 200, #PB_Window_SystemMenu, "SystemMenu")
; On récupère le handle du SystemMenu
SysMenu = GetSystemMenu_(WindowID(), #FALSE)
DefType.MENUITEMINFO MenuInfo
MenuInfo\cbSize = SizeOf(MENUITEMINFO)
MenuInfo\fmask = $2 | $40
; On insert une séparation
MenuInfo\fType = #MFT_SEPARATOR
InsertMenuItem_(SysMenu, 5, #MF_BYPOSITION, MenuInfo)
; Le 5 correspond à la position dans le menu
; On insert un élément dans le SystemMenu
MenuInfo\fType = #MFT_STRING
MenuInfo\fState = #MFS_DEFAULT
MenuInfo\wID = 20 ; ID du menu
Texte.s = "Menu 1" ; Texte de l'élément
MenuInfo\dwTypeData = @Texte
MenuInfo\cch = Len(Texte) + 1
InsertMenuItem_(SysMenu, 6, #MF_BYPOSITION, MenuInfo)
; Le 6 correspond à la position dans le menu
; On insert un élément dans le SystemMenu
MenuInfo\fType = #MFT_STRING
MenuInfo\fState = #MFS_DEFAULT
MenuInfo\wID = 21 ; ID du menu
Texte.s = "Menu 2" ; Texte de l'élément
MenuInfo\dwTypeData = @Texte
MenuInfo\cch = Len(Texte) + 1
InsertMenuItem_(SysMenu, 7, #MF_BYPOSITION, MenuInfo)
; Le 7 correspond à la position dans le menu
SetWindowCallback(@WindowCallback())
Repeat
Event = WindowEvent()
Until Event = #WM_CLOSE
Merci d'avance.