Seite 1 von 1

SubMenu aktualisieren

Verfasst: 14.02.2015 19:04
von marcelx
Hallo,

ich möchte ein sub-menü für zuletzt geöffneten Dokumente:

Code: Alles auswählen

OpenSubMenu(" zuletzt geöffneten Dokumente")
  MenuItem( #id0, "C:\Autoexec.bat")
  MenuItem( #id1, "D:\Test.txt")
CloseSubMenu()
Ich möchte die Liste der MenuItem im lauf meine Programm anpassen (zusätzliche MenuItem z.B.)
Gibt es ein Möglichkeit dafür?

Danke
MarcelX

Re: SubMenu aktualisieren

Verfasst: 14.02.2015 20:10
von ts-soft
Erstell Dein Menü in einer Procedure und erstell es bei Bedarf komplett Neu!
Dauert vielleicht < 10 ms, bemerkt kein Mensch, bevor Du da irgendwelche
API bemühst.

Gruß
Thomas

Re: SubMenu aktualisieren

Verfasst: 14.02.2015 20:18
von marcelx
Danke Thomas,

so geht es

Gruß
MarcelX

Re: SubMenu aktualisieren

Verfasst: 14.02.2015 20:22
von Josh
BTW: Ich finde es schön, wenn das dann dem Windows Standard entspricht und beim Starten des Programmes über das Startmenü, die letzten geöffneten Dokumente dort schon aufscheinen.

Habe mich noch nicht damit beschäftigt, kann nicht sagen, ob es da eigene APIs gibt oder ob du das manuell in die Regestry eintragen musst.

Re: SubMenu aktualisieren

Verfasst: 14.02.2015 23:09
von Vera
Hallo Josh,

mach es doch wie PureBasic, und speicher die letzten Dateien in den Preferencen (ala purebasic.prefs) ab.

greets ~ Vera

Re: SubMenu aktualisieren

Verfasst: 16.02.2015 13:37
von RSBasic
@marcelx
Menüeintrag nachträglich hinzufügen: http://www.rsbasic.de/aktualisierung/wi ... 3%BCgen.pb
Für SubMenu leicht angepasst:

Code: Alles auswählen

EnableExplicit

Define MENUITEMINFO.MENUITEMINFO
Define SubMenuHandle

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  If CreateMenu(1, WindowID(0))
    MenuTitle("Datei")
    MenuItem(1, "Öffnen")
    MenuItem(2, "Speichern")
    SubMenuHandle = OpenSubMenu("zuletzt geöffneten Dokumente")
    If SubMenuHandle
      MenuItem(4, "C:\Autoexec.bat")
      MenuItem(5, "D:\Test.txt")
      
      CloseSubMenu()
    EndIf
    MenuItem(3, "Beenden")
  EndIf
  
  MENUITEMINFO\cbSize = SizeOf(MENUITEMINFO)
  MENUITEMINFO\fMask = #MIIM_TYPE | #MIIM_ID
  MENUITEMINFO\fType = #MFT_STRING
  MENUITEMINFO\dwTypeData = @"E:\Neu.png"
  MENUITEMINFO\wID = 6
  
  InsertMenuItem_(SubMenuHandle, 0, 0, MENUITEMINFO)
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        End
    EndSelect
  ForEver
EndIf

Re: SubMenu aktualisieren

Verfasst: 16.02.2015 13:50
von marcelx
Danke RSBasic, das ist auch eine Möglichkeit.
Ich möchte nicht nur der Sub-Menu erweitern, sondern ganz neu aufbauen.
Gruß
MarcelX