Code: Select all
Global menuImageWidth = GetSystemMetrics_(#SM_CXMENUCHECK)
Global menuImageHeight = GetSystemMetrics_(#SM_CYMENUCHECK)
CreateImage(0,30,30)
StartDrawing(ImageOutput(0))
For x = 0 To 29
For y = 0 To 29
Plot(x,y, RGB(x,y,x*y))
Next
Next
StopDrawing()
Procedure SetImage(iMenu, iID, ico)
ExtractIconEx_("shell32.dll", ico, 0, @iIcon, 1)
im=CreateImage(#PB_Any, 16, 16)
himg = StartDrawing(ImageOutput(im))
Box(0, 0, 16, 16, RGB(255, 255, 255))
DrawImage(iIcon, 0, 0, 16, 16)
StopDrawing()
itemImage = ResizeImage(im, menuImageWidth, menuImageHeight)
SetMenuItemBitmaps_(iMenu,iID,#MF_BYPOSITION,itemImage,0)
DestroyIcon_(iIcon)
EndProcedure
OpenWindow(0, 0, 0, 600, 300, "TEST",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
SetWindowColor(0,$BCFCFD)
ContainerGadget(0,0,270,400,30,#PB_Container_Single)
ButtonImageGadget(1,2,0,30,30,ImageID(0))
hMenu = CreatePopupMenu(0)
MenuItem(0, "Testing 0")
MenuItem(1, "Testing 1")
sMenu = OpenSubMenu("Submenu")
MenuItem(2, "Testing 2")
MenuItem(3, "Testing 3")
MenuItem(4, "Testing 4")
MenuItem(5, "Testing 5")
SetImage(hMenu, 0, 4)
SetImage(hMenu, 1, 130)
SetImage(hMenu, 2, 194)
SetImage(sMenu, 0,4)
SetImage(sMenu, 1, 43)
SetImage(sMenu, 2, 10)
SetImage(sMenu, 3, 90)
Repeat
Select WaitWindowEvent()
Case #PB_Event_SizeWindow
ResizeGadget(0,-2,WindowHeight(0)- 32,WindowWidth(0)+4,32)
Case #PB_Event_Gadget
Select EventGadget()
Case 1
DisplayPopupMenu(0, WindowID(0),WindowX(0)+GadgetX(0)+12, WindowY(0)+WindowHeight(0) - 70)
EndSelect
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
EndSelect
Until Quit = 1