Code: Select all
Global tip,ti.TOOLINFO
Procedure CurPos(parameter)
Repeat
GetMenuItemRect_(WindowID(0),MenuID(0),0,r.RECT)
GetMenuItemRect_(WindowID(0),MenuID(0),1,r2.RECT)
GetMenuItemRect_(WindowID(0),MenuID(0),2,r3.RECT)
GetCursorPos_(p.POINT)
If PtInRect_(r, PeekQ(@p))
ti\lpszText=@" One"
SendMessage_(tip, #TTM_ADDTOOL, 0, ti)
ElseIf PtInRect_(r2, PeekQ(@p))
ti\lpszText=@" Two"
SendMessage_(tip, #TTM_ADDTOOL, 0, ti)
ElseIf PtInRect_(r3, PeekQ(@p))
ti\lpszText=@" Three"
SendMessage_(tip, #TTM_ADDTOOL, 0, ti)
Else
SendMessage_(tip, #TTM_DELTOOL, 0, ti)
EndIf
ForEver
EndProcedure
If OpenWindow(0, 100, 150, 195, 260, "PureBasic - Menu")
If CreateMenu(0, WindowID(0))
MenuTitle("File")
MenuItem( 1, "&Load...")
MenuItem( 2, "Save")
MenuItem( 3, "Save As...")
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")
MenuItem( 9, "Copy")
MenuItem(10, "Paste")
MenuTitle("?")
MenuItem(11, "About")
EndIf
DisableMenuItem(0, 3, 1)
DisableMenuItem(0, 13, 1)
Tip = CreateWindowEx_(#WS_EX_TOPMOST,"Tooltips_Class32",0, #TTS_ALWAYSTIP|#TTS_BALLOON,#CW_USEDEFAULT, #CW_USEDEFAULT,#CW_USEDEFAULT,#CW_USEDEFAULT, WindowID(0),0,GetModuleHandle_(0),0)
SetWindowTheme_(Tip, @null.w, @null.w)
SendMessage_(tip,#TTM_SETTIPTEXTCOLOR,$0202FD,0)
SendMessage_(tip,#TTM_SETTIPBKCOLOR,$DCFFFF,0)
SendMessage_(Tip, #TTM_SETDELAYTIME, #TTDT_INITIAL,100)
SendMessage_(Tip, #TTM_SETDELAYTIME, #TTDT_AUTOPOP,1000)
ti\cbSize = SizeOf(ti)
ti\uFlags = #TTF_IDISHWND|#TTF_SUBCLASS
ti\uId = WindowID(0)
thread = CreateThread(@CurPos(),30)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
Select EventMenu() ; To see which menu has been selected
Case 11 ; About
MessageRequester("About", "Cool Menu example", 0)
Default
MessageRequester("Info", "MenuItem: "+Str(EventMenu()), 0)
EndSelect
Case #PB_Event_CloseWindow
KillThread(thread)
Quit = 1
EndSelect
Until Quit = 1
EndIf
End