I tried you code with using my own icons. The result was no so good.
Code: Select all
Global i.ICONINFO,curHnd
Enumeration
#MainWindow
#MainMenu
#menu_sxol_etos
#menu_mathimata
#menu_mathites
#menu_test
#menu_settings
#menu_save
#menu_create_backup
#menu_restore_backup
#menu_exit
EndEnumeration
i\fIcon = #True
LoadFont(0,"MS Sans Serif",16,#PB_Font_Bold)
Procedure SetImage(Menu, index, ico,Text$ ,Color)
CreateImage(10, 500, 30 ,32,#PB_Image_Transparent)
hdc = StartDrawing(ImageOutput(10))
Box(0,0,500,30,$FFFFFF)
DrawingMode(#PB_2DDrawing_Transparent )
DrawingFont(FontID(0))
DrawText(34,2,Text$,Color)
StopDrawing()
i\hbmMask = ImageID(10)
i\hbmColor = ImageID(10)
curHnd = CreateIconIndirect_(i)
;ExtractIconEx_("shell32.dll", ico, 0, @iIcon, 1)
iIcon = ico
im=CreateImage(#PB_Any, 500, 30,32,#PB_Image_Transparent )
StartDrawing(ImageOutput(im))
DrawImage(iIcon, 6, 8)
DrawImage(curHnd, 0, 0)
StopDrawing()
SetMenuItemBitmaps_(Menu,index,#MF_BYPOSITION, ImageID(im),0)
DestroyIcon_(iIcon)
EndProcedure
OpenWindow(#MainWindow, 0, 0, 600, 300, "TEST",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
ButtonGadget(35,0,0,60,25,"test")
;hMenu = CreatePopupMenu(0)
;
; MenuItem(0,"")
; MenuItem(1,"")
; sMenu = OpenSubMenu("")
; MenuItem(2,"")
; MenuItem(3,"")
; MenuItem(4,"")
; MenuItem(5,"")
;CloseSubMenu()
;SetImage(hMenu, 0, 4,"Load",$4F0000)
;SetImage(hMenu, 1, 130,"Save As",$00FF00)
;SetImage(hMenu, 2, 194,"Options",$0000FF)
;SetImage(sMenu, 0,4,"Test #1",$EC07F4)
;SetImage(sMenu, 1, 43,"Test #2",$EC07F4)
;SetImage(sMenu, 2, 10,"Test #3",$EC07F4)
;SetImage(sMenu, 3, 90,"Test #4",$EC07F4)
hMenu = CreatePopupMenu(#MainMenu)
MenuItem(#menu_sxol_etos, "")
MenuItem(#menu_mathimata, "")
MenuItem(#menu_mathites, "")
MenuItem(#menu_test, "")
MenuBar()
MenuItem(#menu_settings, "")
MenuItem(#menu_save, "")
MenuItem(#menu_create_backup, "")
MenuItem(#menu_restore_backup, "")
MenuBar()
MenuItem(#menu_exit,"")
;If CreateImageMenu(#MainMenu, WindowID(#MainWindow))
YearIcon = CatchImage(#PB_Any, ?YearStart, ?YearEnd - ?YearStart)
LessonsIcon = CatchImage(#PB_Any, ?LessonsStart, ?LessonsEnd - ?LessonsStart)
StudentsIcon = CatchImage(#PB_Any, ?StudentsStart, ?StudentsEnd - ?StudentsStart)
GradesIcon = CatchImage(#PB_Any, ?GradesStart, ?GradesEnd - ?GradesStart)
SettingsIcon = CatchImage(#PB_Any, ?SettingsStart, ?SettingsEnd - ?SettingsStart)
ReportsIcon = CatchImage(#PB_Any, ?ReportsStart, ?ReportsEnd - ?ReportsStart)
BackUpIcon = CatchImage(#PB_Any, ?BackUpStart, ?BackUpEnd - ?BackUpStart)
RestoreIcon = CatchImage(#PB_Any, ?RestoreStart, ?RestoreEnd - ?RestoreStart)
ExitIcon = CatchImage(#PB_Any, ?ExitStart, ?ExitEnd - ?ExitStart)
SetImage(hMenu, #menu_sxol_etos, ImageID(YearIcon), "This is long text",$FF0000)
SetImage(hMenu, #menu_mathimata, ImageID(LessonsIcon),"This is longer text",$FF0000)
SetImage(hMenu, #menu_mathites, ImageID(StudentsIcon),"An other long text",$FF0000)
SetImage(hMenu, #menu_test, ImageID(GradesIcon),"Some very very very very very long text",$FF0000)
SetImage(hMenu, #menu_settings, ImageID(SettingsIcon),"some text",$FF0000)
SetImage(hMenu, #menu_save, ImageID(ReportsIcon),"some text",$FF0000)
SetImage(hMenu, #menu_create_backup, ImageID(BackUpIcon),"some very long text here",$FF0000)
SetImage(hMenu, #menu_restore_backup, ImageID(RestoreIcon),"some text here also",$FF0000)
SetImage(hMenu, #menu_exit, ImageID(ExitIcon),"Exit",$FF0000)
Repeat
Select WaitWindowEvent()
Case #PB_Event_RightClick
DisplayPopupMenu(0, WindowID(0))
Case #PB_Event_Menu
Select EventMenu()
Case 0 : Debug "MenuItem #0"
Case 1 : Debug "MenuItem #1"
Case 2 : Debug "MenuItem #2"
Case 3 : Debug "MenuItem #3"
Case 4 : Debug "MenuItem #4"
Case 5 : Debug "MenuItem #5"
Case 6 : Debug "MenuItem #6"
EndSelect
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Gadget
Select EventGadget()
Case 35
X = WindowX(#MainWindow)
Y = WindowY(#MainWindow)
DisplayPopupMenu(#MainMenu,WindowID(0),X+4,Y+53)
Default
Debug EventGadget()
EndSelect
EndSelect
Until Quit = 1
DataSection
;menu
YearStart:
IncludeBinary "icons\years.ico"
YearEnd:
LessonsStart:
IncludeBinary "icons\lessons.ico"
LessonsEnd:
StudentsStart:
IncludeBinary "icons\students.ico"
StudentsEnd:
GradesStart:
IncludeBinary "icons\test.ico"
GradesEnd:
SettingsStart:
IncludeBinary "icons\settings.ico"
SettingsEnd:
ReportsStart:
IncludeBinary "icons\reports.ico"
ReportsEnd:
BackUpStart:
IncludeBinary "icons\backup.ico"
BackUpEnd:
RestoreStart:
IncludeBinary "icons\restore.ico"
RestoreEnd:
ExitStart:
IncludeBinary "icons\exit.ico"
ExitEnd:
EndDataSection
Any help to fix it would be appreciated.