Colors,Fonts,Sizes,Positions .........etc
Code: Select all
#TPM_CENTERALIGN = $4
#TPM_VCENTERALIGN = $10
LoadFont(0,"Georgia",10,#PB_Font_Bold)
Procedure SetImage(iMenu, iID, ico)
ExtractIconEx_("shell32.dll", ico, 0, @iIcon, 1)
im=CreateImage(#PB_Any, 16, 16 ,32)
StartDrawing(ImageOutput(im))
Box(0, 0, 16, 16, GetSysColor_(#COLOR_MENU))
DrawingMode(#PB_2DDrawing_AllChannels)
DrawImage(iIcon, 0, 0, 16, 16)
StopDrawing()
DestroyIcon_(iIcon)
ProcedureReturn im
EndProcedure
Procedure MouseProc(nCode, wParam, lParam)
Static lastgad
*ms.MOUSEHOOKSTRUCT = lParam
If wParam = #WM_MOUSEMOVE
GetCursorPos_ (@p.POINT)
ScreenToClient_ (WindowID(0), @p)
hGad = ChildWindowFromPoint_ (GadgetID(0), p\y<< 32+p\x)
If hGad <> Lastgad And hGad <> 0
SetGadgetColor(GetDlgCtrlID_(Lastgad),#PB_Gadget_BackColor,$808080)
SetGadgetColor(GetDlgCtrlID_(Lastgad),#PB_Gadget_FrontColor,$FFFFFF)
keybd_event_(#VK_ESCAPE,0,#KEYEVENTF_EXTENDEDKEY,0)
keybd_event_(#VK_ESCAPE,0,#KEYEVENTF_KEYUP|#KEYEVENTF_EXTENDEDKEY,0)
EndIf
Select hGad
Case GadgetID(1)
Lastgad = GadgetID(1)
SetGadgetColor(1,#PB_Gadget_BackColor,$FFCC99)
SetGadgetColor(1,#PB_Gadget_FrontColor,$151FFE)
TrackPopupMenu_(GetSubMenu_(MenuID(0),0), #TPM_CENTERALIGN | #TPM_VCENTERALIGN ,WindowX(0) + GadgetX(1) + 62, WindowY(0) + GadgetY(0) + 114,0, WindowID(0), 0)
Case GadgetID(2)
Lastgad = GadgetID(2)
SetGadgetColor(2,#PB_Gadget_BackColor,$FFCC99)
SetGadgetColor(2,#PB_Gadget_FrontColor,$151FFE)
TrackPopupMenu_(GetSubMenu_(MenuID(0),1), #TPM_CENTERALIGN | #TPM_VCENTERALIGN , WindowX(0) + GadgetX(2) + 46 , WindowY(0) + GadgetY(0) + 84,0, WindowID(0), 0)
Case GadgetID(3)
Lastgad = GadgetID(3)
SetGadgetColor(3,#PB_Gadget_BackColor,$FFCC99)
SetGadgetColor(3,#PB_Gadget_FrontColor,$151FFE)
TrackPopupMenu_(GetSubMenu_(MenuID(0),2), #TPM_CENTERALIGN | #TPM_VCENTERALIGN , WindowX(0) + WindowWidth(0) - 66 , WindowY(0) + GadgetY(0) + 74,0, WindowID(0), 0)
; GetMenuItemRect_(WindowID(0),GetSubMenu_(MenuID(0),2),1,r.RECT)
; PopupMenuWidth = r\right-r\left
; Debug PopupMenuWidth
EndSelect
ElseIf wParam = #WM_LBUTTONDOWN
SetGadgetColor(GetDlgCtrlID_(Lastgad),#PB_Gadget_BackColor,$808080)
SetGadgetColor(GetDlgCtrlID_(Lastgad),#PB_Gadget_FrontColor,$FFFFFF)
EndIf
ProcedureReturn result
EndProcedure
If OpenWindow(0, 0, 0, 400, 300, "PureBasic - Menu",#PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_ScreenCentered)
If CreateImageMenu(0, WindowID(0));,#PB_Menu_ModernLook)
MenuTitle("File")
MenuItem( 1, "&Load...",ImageID(SetImage(GetSubMenu_(MenuID(0),0), 0, 4)))
MenuItem( 2, "Save",ImageID(SetImage(GetSubMenu_(MenuID(0),0), 1, 130)))
MenuItem( 3, "Save As...",ImageID(SetImage(GetSubMenu_(MenuID(0),0), 2, 194)))
MenuBar()
OpenSubMenu("Recents")
MenuItem( 5, "Pure.png")
MenuItem( 6, "Basic.jpg")
OpenSubMenu("Even more !")
MenuItem( 12, "Yeah")
CloseSubMenu()
MenuItem( 13, "Rocks.tga")
CloseSubMenu()
MenuBar()
MenuItem( 7, "&Quit")
MenuTitle("Edition")
MenuItem( 8, "Cut",ImageID(SetImage(GetSubMenu_(MenuID(0),1), 0, 4)))
MenuItem( 9, "Copy",ImageID(SetImage(GetSubMenu_(MenuID(0),1), 1, 43)))
MenuItem(10, "Paste",ImageID(SetImage(GetSubMenu_(MenuID(0),1), 2, 10)))
MenuTitle("Help")
MenuItem(11, "Contents and Index",ImageID(SetImage(GetSubMenu_(MenuID(0),2), 3, 90)))
MenuItem(12, "About")
EndIf
SetMenu_(WindowID(0),0)
ContainerGadget(0,0,0,195,20,#PB_Container_BorderLess)
TextGadget(1,0,0,60,20,"File",#SS_CENTERIMAGE | #SS_CENTER)
TextGadget(2,60,0,60,20,"Edition",#SS_CENTERIMAGE | #SS_CENTER)
TextGadget(3, 0,0,0,0,"Help",#SS_CENTERIMAGE | #SS_CENTER)
CloseGadgetList()
SetGadgetFont(1,FontID(0))
SetGadgetFont(2,FontID(0))
SetGadgetFont(3,FontID(0))
SetGadgetColor(0,#PB_Gadget_BackColor,$808080)
SetGadgetColor(1,#PB_Gadget_BackColor,$808080)
SetGadgetColor(2,#PB_Gadget_BackColor,$808080)
SetGadgetColor(3,#PB_Gadget_BackColor,$808080)
SetGadgetColor(1,#PB_Gadget_FrontColor,$FFFFFF)
SetGadgetColor(2,#PB_Gadget_FrontColor,$FFFFFF)
SetGadgetColor(3,#PB_Gadget_FrontColor,$FFFFFF)
lpdwProcessId = GetWindowThreadProcessId_(WindowID(0), 0)
hhook = SetWindowsHookEx_(#WH_MOUSE, @MouseProc(),GetModuleHandle_(0), lpdwProcessId)
Repeat
Select WaitWindowEvent()
Case #PB_Event_SizeWindow
ResizeGadget(0,0,0,WindowWidth(0),20)
ResizeGadget(3,WindowWidth(0)-60,0,60,20)
Case #PB_Event_Gadget
Select EventGadget()
Case 4
Case 2
EndSelect
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit = 1
EndIf
End