'--------------------------------------------------------------- ' 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 '---------------------------------------------------------------