Is it possible to create in a window a simple menu, like the startMenu of windows, in the left bottom of this window

Thanks
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
Code: Select all
CreateImage(0,60,30)
StartDrawing(ImageOutput(0))
For x = 0 To 20
For y = 0 To 29
Plot(x,y, RGB(x,y,x*y))
Next
Next
DrawText(24,6,"Start")
StopDrawing()
Procedure SetImage(iMenu, iID, ico)
ExtractIconEx_("shell32.dll", ico, 0, @iIcon, 1)
im=CreateImage(#PB_Any, 32, 32)
StartDrawing(ImageOutput(im))
Box(0, 0, 32, 32, GetSysColor_(#COLOR_MENU))
DrawImage(iIcon, 0, 0, 32, 32)
StopDrawing()
SetMenuItemBitmaps_(iMenu,iID,#MF_BYPOSITION,ImageID(im),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,60,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) - 120)
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