Another one - why the tooltip icon is that large?
Posted: Thu Dec 05, 2019 7:18 pm
Can anyone shrink the icon to a smaller size?
Code: Select all
Global Dim ToolTipHandle(1)
Procedure.l GadgetToolTipText_(Win,ID,Title.s,Tip.s,IconType)
Protected ToolInfo.TOOLINFO
If Len(Tip)=0
Tip="(nicht definiert)"
EndIf
; Windows 8: runde Ecken bei "einzeiligen" Tips, allerdings bleibt das Verhalten völlig undurchschaubar...
;If FindString(Tip,#CRLF$)=#Null
; Tip=" "+#CRLF$+Tip
;EndIf
ToolInfo\cbSize=SizeOf(TOOLINFO)
ToolInfo\hwnd=WindowID(Win)
ToolInfo\uId=GadgetID(ID)
ToolInfo\lpszText=@Tip
Debug "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
Debug Str(Win)+" / "+Str(ID)+", "+Str(IconType)
Debug Title+" / "+Tip
Debug "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
SendMessage_(ToolTipHandle(ID),#TTM_SETTITLE, LoadIcon_(#Null,IconType),@Title)
SendMessage_(ToolTipHandle(ID),#TTM_UPDATETIPTEXT,0,@ToolInfo)
;SendMessage_(ToolTipHandle(ID),#TTM_UPDATE,0,@ToolInfo)
EndProcedure
Procedure.l GadgetToolTipInit_(Win,ID,Style,Center)
; Adds a tooltip to a Gadget (Id)
; Style: 0= ordinary, 1= balloon
; Center: 1= center the stem
; Icon: 0= No icon, 1= Info, 2= Warn, 3= Error (#TOOLTIP_ constants)
; Colors: RGB() or GetSysColor_(#COLOR_ constants)
; Wegen Windows-Bug (Tooltip verschwindet nach Timeout auf ewig) nun global...
Protected ToolTipID
Protected ToolInfo.TOOLINFO
ToolTipID=CreateWindowEx_(0,"Tooltips_Class32","",#TTS_NOPREFIX|#TTS_BALLOON*Style,0,0,0,0,0,0,0,0)
;If FgColor
; SendMessage_(ToolTipID,#TTM_SETTIPTEXTCOLOR,FgColor,0); Set the tip text color, also the tip outline color for balloon tooltips
;EndIf
;If BgColor
; SendMessage_(ToolTipID,#TTM_SETTIPBKCOLOR,BgColor,0); Set the tip background color
;EndIf
ToolInfo\cbSize=SizeOf(TOOLINFO)
ToolInfo\uFlags=#TTF_IDISHWND|#TTF_SUBCLASS|(#TTF_CENTERTIP*Center)
ToolInfo\hWnd=WindowID(Win)
ToolInfo\uId=GadgetID(ID)
ToolInfo\lpszText=@"-"
SendMessage_(ToolTipID,#TTM_SETDELAYTIME,#TTDT_INITIAL,100)
;SendMessage_(ToolTipID,#TTM_SETDELAYTIME,#TTDT_RESHOW,1000); ?????
SendMessage_(ToolTipID,#TTM_SETDELAYTIME,#TTDT_AUTOPOP,30000)
SendMessage_(ToolTipID,#TTM_ADDTOOL,0,ToolInfo); Register tooltip with the control
SendMessage_(ToolTipID,#TTM_SETMAXTIPWIDTH,0,250); Set as a multiline tooltip with wordwrap
SendMessage_(ToolTipID,#TTM_SETTITLE,0,@"-"); Set the icon style and tip title
ToolTipHandle(ID)=ToolTipID
;Debug "Init "+Str(ID)+" ("+Str(ToolTipID)+")"
ProcedureReturn ToolTipID
EndProcedure
OpenWindow(0,0,0,400,400,"*")
ButtonGadget(1,50,50,200,100,"HA")
GadgetToolTipInit_(0,1,0,0)
GadgetToolTipText_(0,1,"Ooohh","What a large icon :(",#IDI_WARNING);
Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow