Vielleicht hilft dir das weiter.
Allerdings deinen Screenshot nachbilden, das fürchte ich macht richtig Arbeit !!!
Wenn du den BREAK nachträglich machen willst, mußt du die Anzahl der Einträge mit GetMenuItemCount_ ermitteln und mit GetMenuItemRect_ die Höhe der Einträge addieren und diese Summe mit der Position abgleichen und dann die Position des BREAK errechnen. Wäre mir zuviel Aufwand.
Code: Alles auswählen
Procedure MenuItemX(index, txt$, ID)
;du kannst auch hiermit herumprobieren
;für einfache PopUps reicht das
AppendMenu_(ID, #MF_MENUBREAK, index, txt$)
EndProcedure
Procedure MenuItemI(nr,txt$,posi,id)
mii.menuiteminfo
mii\cbSize=SizeOf(MENUITEMINFO)
mii\fMask=#MIIM_TYPE
mii\ftype=#MFT_MENUBREAK|#MFT_STRING
mii\dwTypeData=@txt$
mii\cch=Len(txt$)
mii\wid=nr
SetMenuItemInfo_(id, posi, #True, mii)
EndProcedure
;Code aus der PB-Hilfe übernommen und verändert
If OpenWindow(0, 200, 200, 200, 120, "Popup-Menu Example")
id = CreatePopupMenu(0) ; hier beginnt das Erstellen des Popup-Menüs...
;posi=0 ; Sie können alle Befehle zum Erstellen eines Menüs
MenuItem(1, "Open") ; verwenden, ganz wie bei einem normalen Menü...
;posi=1
MenuItem(2, "Save")
;posi=2
MenuItem(3, "Save as")
;posi=3
OpenSubMenu("files")
MenuItem(8, "PureBasic.exe")
MenuItem(9, "Test.txt")
CloseSubMenu()
;posi=4
MenuItem(14, "xyz") ;Item anlegen
;MenuItemI kann auch hier stehen
;posi=5
MenuItem(4,"Edit")
;posi=6
OpenSubMenu("Recent files")
MenuItem(5, "PureBasic.exe")
MenuItem(6, "Test.txt")
CloseSubMenu()
;posi=7 usw.
MenuItemx(23, "xxxx",id)
MenuItem (24, "xxxx")
MenuItem (25, "xxxx")
MenuItem (26, "xxxx")
;Item überschreiben !!! Posi angeben !!!
;kann direkt nach Menuitem stehen oder ans Ende oder sonstwo
MenuItemI(14,"Quitt",4,id)
Repeat
Select WaitWindowEvent() ; überprüfe Window-Ereignisse
Case #WM_RBUTTONDOWN ; rechte Maustaste wurde gedrückt =>
DisplayPopupMenu(0,WindowID(0)) ; stelle jetzt das Popup-Menü dar
Case #PB_Event_Menu ; ein Eintrag des Popup-Menüs wurde angeklickt
Select EventMenu() ; ermittle den angeklickten Menü-Eintrag...
Case 1 : Debug "Menu: Open"
Case 4 : Debug "Menu: Edit"
Case 14: Quit = 1
Case 25: Debug "25"
EndSelect
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit = 1
EndIf