Icons in Untermenüs darstellen

Anfängerfragen zum Programmieren mit PureBasic.
Klaus_1963
Beiträge: 96
Registriert: 25.06.2009 09:09

Icons in Untermenüs darstellen

Beitrag von Klaus_1963 »

Habe wieder mal ein Problemchen:

Damit die Programme auch schön aussehen, möchte ich die Untermenüs mit süssen Icons ausstatten. Nun sollte der folgende Code meiner Meinung nach funktionieren, tut er aber nicht. Habe den Quelltext mit PureForms erzeugt. Da kann man ja alles wunderschön und schnell einstellen. Die Bitmaps habe ich mit PhotoImpact X3 erzeugt und zwar mit 16x16 Pixel. Sollte doch gehen, oder???? Der Pfad stimmt auch...

Hilfäääää...

Hier der Code:

Code: Alles auswählen

Enumeration
  #Window_0
EndEnumeration
;}
;{ Menu bars
Enumeration
  #Menu_Window_0
EndEnumeration
;}
;{ Menu/Toolbar items
Enumeration
  #Menu_Window_0_Ffnen
EndEnumeration
;}
;{ Images
Enumeration
  #MenuImage_Menu_Window_0_Ffnen
EndEnumeration
;}
;{ Included Images
DataSection
  MenuImage_Menu_Window_0_Ffnen: IncludeBinary "C:\Users\Klaus\Documents\PureBasic\Icons\Datei.bmp"
EndDataSection
;}
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
;}
Procedure OpenWindow_Window_0()
  If OpenWindow(#Window_0, 437, 49, 395, 420, "Window_0", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
    If CreateImageMenu(#Menu_Window_0, WindowID(#Window_0), #PB_Menu_ModernLook)
      MenuTitle("Datei")
      MenuItem(#Menu_Window_0_Ffnen, "Offnen", CatchImage(#MenuImage_Menu_Window_0_Ffnen, ?MenuImage_Menu_Window_0_Ffnen))
      AddKeyboardShortcut(#Window_0, #PB_Shortcut_Alt | #PB_Shortcut_O, #Menu_Window_0_Ffnen)
    EndIf
  EndIf
EndProcedure

OpenWindow_Window_0()

;{- Event loop
Repeat
  Event = WaitWindowEvent()
  Select Event
    ; ///////////////////
    Case #PB_Event_Gadget
      EventGadget = EventGadget()
      EventType = EventType()
    ; /////////////////
    Case #PB_Event_Menu
      EventMenu = EventMenu()
      If EventMenu = #Menu_Window_0_Ffnen
      EndIf
    ; ////////////////////////
    Case #PB_Event_CloseWindow
      EventWindow = EventWindow()
      If EventWindow = #Window_0
        CloseWindow(#Window_0)
        Break
      EndIf
  EndSelect
ForEver
PureBasic 5.72 LTS / Windows / MacOS / Linux Mint / starker Kaffee / noch stärkerer Kaffee / reines Koffein intravenös...
Motto: Hauptsache es funktioniert - aber schnell und richtig!
Benutzeravatar
alter Mann
Beiträge: 201
Registriert: 29.08.2008 09:13
Wohnort: hinterm Mond

Beitrag von alter Mann »

ImageID(CatchImage(....)) sollte helfen
Win11 64Bit / PB 6.0
Klaus_1963
Beiträge: 96
Registriert: 25.06.2009 09:09

Beitrag von Klaus_1963 »

Hm, so einfach geht's wohl nicht. Zumindest nicht bei mir...
PureBasic 5.72 LTS / Windows / MacOS / Linux Mint / starker Kaffee / noch stärkerer Kaffee / reines Koffein intravenös...
Motto: Hauptsache es funktioniert - aber schnell und richtig!
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Beitrag von Kurzer »

Deine bmp Datei muß eine .ico Datei sein.
Habe es gerade mit Deinem code getestet, geht mit ico.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.
Klaus_1963
Beiträge: 96
Registriert: 25.06.2009 09:09

Beitrag von Klaus_1963 »

Bingo: das ist die Lösung!! Fies nur, dass PureForm .bmp da zulässt...

Vielen Dank und Grüsse Klaus
PureBasic 5.72 LTS / Windows / MacOS / Linux Mint / starker Kaffee / noch stärkerer Kaffee / reines Koffein intravenös...
Motto: Hauptsache es funktioniert - aber schnell und richtig!
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Beitrag von Kurzer »

jo, kein Ding. ;)
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag von Vermilion »

Kleine Information am Rande: In PureBasic 4.40 (aktuell ist schon die Beta 1 erschienen) werden laut diesem Post im PureBasic Blog auch PNGs mit Alpha Kanal als Menu Item Icons unterstützt (vielleicht auch Bitmaps, aber da jenes Format in seiner am verbreitetsten Version keinen Alpha Kanal unterstützt, ist dies eher unwahrscheinlich).
Antworten