Teil 3: Die Auswertung der Menüereignisse
|
|
If OpenWindow(0,200,200,250,250,"Menü und Toolbar",#PB_Window_SystemMenu) If CreateGadgetList(WindowID(0)) TextGadget(1,20,60,210,20,"",#PB_Text_Center|#PB_Text_Border) ButtonGadget(2,50,100,150,20,"Programm Ende") EndIf If CreateMenu(0, WindowID()) MenuTitle("Datei") MenuItem( 1, "Neu") MenuItem( 2, "Laden") MenuBar() MenuItem( 3, "Speichern") MenuTitle("Drucken") MenuItem(4,"Drucken") MenuTitle("Ende") MenuItem(5, "Ende") EndIf Repeat EventID = WaitWindowEvent() If EventID = #PB_Event_CloseWindow Quit = 1 EndIf If EventID = #PB_Event_Menu If EventMenu()=1 SetGadgetText(1,"Neu") EndIf If EventMenu()=2 SetGadgetText(1,"Laden") EndIf If EventMenu()=3 SetGadgetText(1,"Speichern") EndIf If EventMenu()=4 SetGadgetText(1,"Drucken") EndIf If EventMenu()=5 MessageRequester("","Programmende!",0) End EndIf EndIf If EventID=#PB_Event_Gadget If EventGadget()=2 Quit=1 EndIf EndIf Until Quit=1 EndIf End |
|
EventID=#PB_Event_Menu
Das Prinzip ist dasselbe wie bei der GadgetAbfrage. In EventID steht ein Wert, der die aktuelle Aktion im Fenster beschreibt. Entspricht dieser Wert der Konstanten #PB_Event_Menu, so liegt ein Ereignis in der Menüzeile vor. In EventMenu() steht nun, welches Menü gedrückt wurde und man kann das zugehörige Ereignis hinzufügen. In unserem Falle setzen wir für jeden Menüpunkt einen Text in unser TextGadget, im letzten Falle (Menü-Punkt Ende) wird das Programm einfach nach Einblenden eines MessageRequesters beendet. |
|
|
|
Das Resultat nach Betätigen des Datei-Menüs:
|