File "Tooltip.inc"
Path: /ShuffleGUI/inc/Tooltip.inc
File size: 1.86 KB
MIME-type:
Charset: utf-8
'---------------------------------------------------------------
' Tooltip.inc for PBWin9
'---------------------------------------------------------------
' Simple Tool Tip Class - Add tool tips to controls
' In Dialog CallBack > %WM_InitDialog message block, call:
' SetTooltip CB.HNDL, %IDC_CONTROL1, "bla bla"
'---------------------------------------------------------------
#INCLUDE ONCE "CommCtrl.inc"
'---------------------------------------------------------------
CLASS ToolTipC
INSTANCE hDlg_ AS LONG
INSTANCE hTip_ AS LONG
INSTANCE tTip_ AS TOOLINFO
INTERFACE ToolTipI : INHERIT IUNKNOWN
METHOD Initialize(BYVAL hDlg AS LONG)
hDlg_ = hDlg
hTip_ = CreateWindowEx(BYVAL 0, "tooltips_class32", "", %TTS_ALWAYSTIP, 0, 0, _
0, 0, BYVAL hDlg, BYVAL 0&, GetModuleHandle(BYVAL %NULL), BYVAL 0&)
IF hTip_ THEN
DIALOG SEND hTip_, %TTM_SETMAXTIPWIDTH, 0, 300
DIALOG SEND hTip_, %TTM_SETDELAYTIME, %TTDT_AUTOPOP, 5000
tTip_.cbSize = LEN(tTip_)
tTip_.uFlags = %TTF_SUBCLASS OR %TTF_IDISHWND
tTip_.hWnd = hDlg_
END IF
END METHOD
METHOD AddControl(BYVAL Id AS LONG, BYVAL tip AS STRING)
IF hTip_ THEN
tTip_.uId = GetDlgItem(hDlg_, ID)
tTip_.lpszText = STRPTR(tip)
SendMessage hTip_, %TTM_ADDTOOL, 0, BYVAL VARPTR(tTip_)
END IF
END METHOD
END INTERFACE
END CLASS
'---------------------------------------------------------------
SUB SetTooltip(BYVAL hDlg AS LONG, BYVAL CtlId AS LONG, BYVAL str AS STRING)
STATIC oTip AS ToolTipI
IF ISNOTHING(oTip) THEN
oTip = CLASS "ToolTipC"
oTip.Initialize(hDlg)
END IF
oTip.AddControl(CtlId, str)
END SUB
'---------------------------------------------------------------