SubMenu aktualisieren

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
marcelx
Beiträge: 429
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

SubMenu aktualisieren

Beitrag 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
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: SubMenu aktualisieren

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
marcelx
Beiträge: 429
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: SubMenu aktualisieren

Beitrag von marcelx »

Danke Thomas,

so geht es

Gruß
MarcelX
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: SubMenu aktualisieren

Beitrag 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.
Benutzeravatar
Vera
Beiträge: 928
Registriert: 18.03.2009 14:47
Computerausstattung: Win XP SP2, Suse 11.1
Wohnort: Essen

Re: SubMenu aktualisieren

Beitrag von Vera »

Hallo Josh,

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

greets ~ Vera
°
<°)))o><
~~~~~~~~~
echo "Don't worry"
echo "Keep quiet"
@echo off
format forum:\
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: SubMenu aktualisieren

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
marcelx
Beiträge: 429
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: SubMenu aktualisieren

Beitrag 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
Win-10, PB 5.31 (Windows - x86)
Antworten