Teil 3: Die Auswertung der Menüereignisse

 

 
If OpenWindow(0,200,200,250,250,#PB_Window_SystemMenu,"Menü und Toolbar")

If CreateGadgetList(WindowID())
  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_EventMenu
    If EventMenuID()=1
       SetGadgetText(1,"Neu")
    EndIf
    If EventMenuID()=2
      SetGadgetText(1,"Laden")
    EndIf
    If EventMenuID()=3
      SetGadgetText(1,"Speichern")
    EndIf
    If EventMenuID()=4
      SetGadgetText(1,"Drucken")
    EndIf 
    If EventMenuID()=5
     MessageRequester("","Programmende!",0)
       End
    EndIf 
EndIf

  If EventID=#PB_EventGadget
    If EventGadgetID()=2
      Quit=1
    EndIf
  EndIf
Until Quit=1

EndIf
End
 

EventID=#PB_EventMenu

 

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_EventMenu, so liegt ein Ereignis in der Menüzeile vor. In EventMenuID() 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:

WEITER