Code: Select all
EnableExplicit
Global.i TT,oldCB
Global.i TT_1, TT_2
Global.rect n1, n2
Procedure IsMouseOver(r.i)
Protected p.Point
GetCursorPos_(p)
ScreenToClient_ (WindowID(0), @p)
ProcedureReturn PtInRect_(r,p\y << 32 + p\x)
EndProcedure
Procedure.i callback(hWnd.i, uMsg.i, wParam.i, lParam.i)
Protected msg.MSG
If uMsg = #WM_MOUSEMOVE
If IsMouseOver(n1)
TT = TT_1
ElseIf IsMouseOver(n2)
TT = TT_2
EndIf
msg\hwnd = hWnd
msg\message = uMsg
msg\wParam = wParam
msg\lParam = lParam
SendMessage_(TT, #TTM_RELAYEVENT, 0,msg)
EndIf
ProcedureReturn CallWindowProc_(oldCB,hWnd,uMsg,wParam,lParam)
EndProcedure
Define gtt.i
Define ti.Toolinfo
Define null.i, Quit.i
If OpenWindow(0, 0, 0, 270, 200, "GadgetTooltip", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
PanelGadget(2,0,0,270,200)
AddGadgetItem(2, -1, "Tab1")
ButtonGadget(0, 10, 30, 250, 30, "Button with Tooltip-1")
AddGadgetItem(2, -1, "Tab2")
CloseGadgetList()
SendMessage_(GadgetID(2),#TCM_GETITEMRECT,0,n1.RECT)
SendMessage_(GadgetID(2),#TCM_GETITEMRECT,1,n2.RECT)
GadgetToolTip(0, "Tooltip For Button 0"+#CR$+"With more than one line")
GTT = FindWindow_("tooltips_class32",0)
SetWindowLongPtr_(GTT, #GWL_STYLE, GetWindowLongPtr_(GTT, #GWL_STYLE) | #TTS_ALWAYSTIP| #TTS_NOPREFIX| #WS_POPUP| #TTS_BALLOON) ;#TTS_BUBBLE
SetWindowTheme_(GTT, @null, @null)
SendMessage_(GTT,#TTM_SETMAXTIPWIDTH,0,200)
SendMessage_(GTT,#TTM_SETTIPTEXTCOLOR,$00FF00,0)
SendMessage_(GTT, #TTM_SETTITLE, #TOOLTIP_INFO_ICON, @"Tooltip for Button 0")
ti\cbSize = SizeOf(ti)
ti\uFlags = #TTF_CENTERTIP
ti\hWnd = GadgetID(2)
TT_1 = CreateWindowEx_(0, "Tooltips_Class32", "", #TTS_ALWAYSTIP| #TTS_NOPREFIX| #WS_POPUP| #TTS_BALLOON, 0, 0, 0, 0, 0, 0, 0, 0)
SetWindowTheme_(TT_1, @null, @null)
SendMessage_(TT_1, #TTM_SETMAXTIPWIDTH, 0, 250)
SendMessage_(TT_1,#TTM_SETTIPTEXTCOLOR,$0000FF,0)
SendMessage_(TT_1,#TTM_SETTIPBKCOLOR,$D1FFFF,0)
ti\lpszText = @"Tool 0"
SetRect_(@ti\rect, n1\left,n1\top,n1\right,n1\bottom)
SendMessage_(TT_1, #TTM_ADDTOOL, 0, ti)
SendMessage_(TT_1, #TTM_SETTITLE, #TOOLTIP_WARNING_ICON, @"TAB #1")
TT_2 = CreateWindowEx_(0, "Tooltips_Class32", "", #TTS_ALWAYSTIP| #TTS_NOPREFIX| #WS_POPUP| #TTS_BALLOON &~ #WS_BORDER, 0, 0, 0, 0, 0, 0, 0, 0)
SetWindowTheme_(TT_2, @null, @null)
SendMessage_(TT_2, #TTM_SETMAXTIPWIDTH, 0, 100)
SendMessage_(TT_2,#TTM_SETTIPTEXTCOLOR,$FF0000,0)
ti\lpszText = @"Tooltip For TAB 2 With More Lines 3"
SetRect_(@ti\rect, n2\left,n2\top,n2\right,n2\bottom)
SendMessage_(TT_2, #TTM_ADDTOOL, 0, ti)
SendMessage_(TT_2, #TTM_SETTITLE, #TOOLTIP_ERROR_ICON, @"TAB #2")
oldCB = SetWindowLongPtr_(GadgetID(2),#GWL_WNDPROC,@callback())
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit = 1
EndIf
M.