Seite 1 von 1
Klick auf MenuTitle detektieren
Verfasst: 27.07.2013 21:49
von Daffy0815
Hallo,
wie kann man einen Klick auf einen Menütitel wie im folgenden Beispiel detektieren?
Ein rein horizontales Menü ohne "MenuItems".
Mit EventMenu gings irgendwie nicht.
Code: Alles auswählen
If OpenWindow(0, 200, 200, 300, 200, "Test")
If CreateMenu(0, WindowID(0))
MenuTitle("Erster Eintrag")
MenuTitle("Zweiter Eintrag")
MenuTitle("Dritter Eintrag")
EndIf
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Gruß
Daffy
Re: Klick auf MenuTitle detektieren
Verfasst: 27.07.2013 21:59
von RSBasic
Ganz einfach:
Code: Alles auswählen
EnableExplicit
Define EventID
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If CreateMenu(0, WindowID(0))
MenuItem(1, "Erster Eintrag")
MenuItem(2, "Zweiter Eintrag")
MenuItem(3, "Dritter Eintrag")
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Menu
Select EventMenu()
Case 1
Debug "Erster Eintrag"
Case 2
Debug "Zweiter Eintrag"
Case 3
Debug "Dritter Eintrag"
EndSelect
EndIf
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
Re: Klick auf MenuTitle detektieren
Verfasst: 27.07.2013 22:54
von Daffy0815
Danke!
Die Verknüpfung mit dem Window in dem das Menü sich befindet muss man also in die Schleife "selbst" einbauen falls es mehrere Fenster mit solchen Menüs gibt.
Ich dachte man würde die Referenz über die ID des Menüs herstellen.
Also praktisch so:
Code: Alles auswählen
EnableExplicit
Define EventID
#WindowNum = 10
#MenuNum=20
If OpenWindow(#WindowNum, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If CreateMenu(#MenuNum, WindowID(#WindowNum))
MenuItem(1, "Erster Eintrag")
MenuItem(2, "Zweiter Eintrag")
MenuItem(3, "Dritter Eintrag")
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Menu
If GetActiveWindow() = #WindowNum
Select EventMenu()
Case 1
Debug "Erster Eintrag"
Case 2
Debug "Zweiter Eintrag"
Case 3
Debug "Dritter Eintrag"
EndSelect
EndIf
EndIf
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
Gruß
Daffy
Re: Klick auf MenuTitle detektieren
Verfasst: 27.07.2013 23:08
von ts-soft
Daffy0815 hat geschrieben:Ich dachte man würde die Referenz über die ID des Menüs herstellen.
Nein, über die WindowID() dahinter

Re: Klick auf MenuTitle detektieren
Verfasst: 30.07.2013 01:11
von Daffy0815
Kann man in ein solches, rein horizontales Menü eigentlich auch einen Trenner einfügen?
MenuBar() zeigt hier keine Wirkung!
Gruß
Daffy
Re: Klick auf MenuTitle detektieren
Verfasst: 30.07.2013 08:30
von RSBasic
MenuBar() erstellt eine horizontale Linie zwischen zwei MenuItems in einem aufgeklappten Menü.
Ansonsten wenn kein MenuTitle() angegeben wird, dann wird ein Zwischenraum (vertikal) eingefügt.
Wie sieht dein Code aus und was möchtest du genau?
Wo soll ein Trenner eingefügt werden? Im aufgeklappten Menü oder direkt in der Menüzeile zwischen zwei MenuItems/MenuTitles?
PS: Das nächste Mal
bitte einfach ein neues Thema eröffnen. Es hat nichts mehr mit dem Thema "Klick auf MenuTitle" zu tun! Denk bitte daran! Sonst wirds einfach unüberslichlich, wenn jemand im Forum was suchen möchte.