[Color=Blue]Dim[/color] tp [Color=Blue]As[/color] [Color=Blue]New[/color] CustomTip()
[Color=Blue]Private[/color] [Color=Blue]Sub[/color] Form1_Load([Color=Blue]ByVal[/color] sender [Color=Blue]As[/color] System.Object, [Color=Blue]ByVal[/color] e [Color=Blue]As[/color] System.EventArgs) [Color=Blue]Handles[/color] [Color=Blue]MyBase[/color].Load
ToolTip1.SetToolTip(Button1, Button1.Text)
tp.CustomBalloon(ToolTip1)
[Color=Blue]End[/color] [Color=Blue]Sub
[Color=blue]End Class[/color]
'///[/color] [Color=Green]the[/color] [Color=Green]Class[/color] [Color=Green]that[/color] [Color=Green]will[/color] [Color=Green]build[/color] [Color=Green]your[/color] [Color=Green]Custom[/color] [Color=Green]ToolTip[/color] [Color=Green].[/color] [Color=Green][/color] [Color=Green].[/color] [Color=Green][/color] [Color=Green].[/color]
#[Color=blue]Region[/color] [Color=gray]" Custom ToolTip Builder "[/color]
Public[/color] [Color=Blue]Class[/color] CustomTip
[Color=Blue]Private[/color] [Color=Blue]Enum[/color] ToolTipIcon
TTI_INFO = 1
TTI_WARNING = 2
TTI_ERROR = 3
[Color=Blue]End[/color] [Color=Blue]Enum
[/color] [Color=Blue]Private[/color] [Color=Blue]Enum[/color] ToolTipStyle
TTS_BALLOON = 64
WS_BORDER = 8388608
TTS_NOPREFIX = 2
TTM_SETTITLE = 1056
TTM_UPDATETIPTEXT = 1036
TTM_SETTIPBKCOLOR = 1043
TTM_SETTIPTEXTCOLOR = 1044
[Color=Blue]End[/color] [Color=Blue]Enum
[/color] [Color=Blue]Public[/color] [Color=Blue]Sub[/color] CustomBalloon([Color=Blue]ByVal[/color] tip [Color=Blue]As[/color] ToolTip, [Color=Blue]Optional[/color] [Color=Blue]ByVal[/color] style [Color=Blue]As[/color] [Color=Blue]Integer[/color] = 0)
[Color=Green]'///[/color] [Color=Green]the[/color] [Color=Green]first[/color] [Color=Green]5[/color] [Color=Green]lines[/color] [Color=Green]are[/color] [Color=Green]from[/color] [Color=Green]Divil's[/color] [Color=Green]Balloon[/color] [Color=Green]tip[/color] [Color=Green]example
[/color] [Color=Green]'///[/color] [Color=Green]i've[/color] [Color=Green]marked[/color] [Color=Green]them[/color] [Color=Green]with[/color] [Color=Green]a[/color] [Color=Green][/color] [Color=Green]*[/color] [Color=Green][/color] [Color=Green]at[/color] [Color=Green]the[/color] [Color=Green]end[/color] [Color=Green].[/color] [Color=Green]
[/color] [Color=Green]'///[/color] [Color=Green]start[/color] [Color=Green]of[/color] [Color=Green][/color] [Color=Green]*[/color] [Color=Green]
[/color] [Color=Blue]Dim[/color] hwnd [Color=Blue]As[/color] NativeWindow = [Color=Blue]DirectCast[/color]([Color=Blue]GetType[/color](ToolTip).GetField("window", Reflection.BindingFlags.NonPublic [Color=Blue]Or[/color] Reflection.BindingFlags.Instance).GetValue(tip), NativeWindow) [Color=Green]'///[/color] [Color=Green][/color] [Color=Green]*[/color] [Color=Green]
[/color] style = Win32.GetWindowLong(hwnd.Handle, Win32.GWL_STYLE) [Color=Green]'///[/color] [Color=Green][/color] [Color=Green]*[/color] [Color=Green]
[/color] style = style [Color=Blue]Xor[/color] ToolTipStyle.WS_BORDER [Color=Green]'///[/color] [Color=Green][/color] [Color=Green]*[/color] [Color=Green]
[/color] style = style [Color=Blue]Or[/color] ToolTipStyle.TTS_BALLOON [Color=Blue]Or[/color] ToolTipStyle.TTS_NOPREFIX [Color=Green]'///[/color] [Color=Green][/color] [Color=Green]*[/color] [Color=Green]
[/color] Win32.SetWindowLong(hwnd.Handle, Win32.GWL_STYLE, style) [Color=Green]'///[/color] [Color=Green][/color] [Color=Green]*[/color] [Color=Green]
[/color] [Color=Green]'///[/color] [Color=Green]end[/color] [Color=Green]of[/color] [Color=Green][/color] [Color=Green]*[/color] [Color=Green]
[/color] [Color=Green]'///[/color] [Color=Green]the[/color] [Color=Green]remaining[/color] [Color=Green]code[/color] [Color=Green][/color] [Color=Green],[/color] [Color=Green][/color] [Color=Green]for[/color] [Color=Green]colors[/color] [Color=Green]/[/color] [Color=Green]caption[/color] [Color=Green]/[/color] [Color=Green]icon[/color] [Color=Green]is[/color] [Color=Green]all[/color] [Color=Green]by[/color] [Color=Green]me[/color] [Color=Green][/color] [Color=Green]([/color] [Color=Green][/color] [Color=Green]Dynamic[/color] [Color=Green]Sysop[/color] [Color=Green][/color] [Color=Green])[/color] [Color=Green]
[/color] [Color=Green]'///[/color] [Color=Green]no[/color] [Color=Green]to[/color] [Color=Green]set[/color] [Color=Green]the[/color] [Color=Green]caption[/color] [Color=Green]/[/color] [Color=Green]icon[/color] [Color=Green]&[/color] [Color=Green]colors[/color] [Color=Green]up[/color] [Color=Green].[/color] [Color=Green][/color] [Color=Green].[/color] [Color=Green][/color] [Color=Green].[/color] [Color=Green]
[/color] SetToolTipCaption(hwnd, "this is the tooltip Caption")
SetToolTipBackColor(hwnd, Color.GhostWhite)
SetToolTipForeColor(hwnd, Color.BlueViolet)
[Color=Blue]End[/color] [Color=Blue]Sub
[/color] [Color=Blue]Private[/color] [Color=Blue]Sub[/color] SetToolTipCaption([Color=Blue]ByVal[/color] tip [Color=Blue]As[/color] NativeWindow, [Color=Blue]ByVal[/color] Caption [Color=Blue]As[/color] [Color=Blue]String[/color])
Win32.SendMessage(tip.Handle, ToolTipStyle.TTM_SETTITLE, ToolTipIcon.TTI_INFO, Caption)
[Color=Blue]End[/color] [Color=Blue]Sub
[/color] [Color=Blue]Private[/color] [Color=Blue]Sub[/color] SetToolTipBackColor([Color=Blue]ByVal[/color] tip [Color=Blue]As[/color] NativeWindow, [Color=Blue]ByVal[/color] c [Color=Blue]As[/color] Color)
[Color=Green]'///[/color] [Color=Green]set[/color] [Color=Green]the[/color] [Color=Green]back[/color] [Color=Green]color[/color] [Color=Green]of[/color] [Color=Green]the[/color] [Color=Green]tooltip
[/color] [Color=Blue]Dim[/color] Col [Color=Blue]As[/color] [Color=Blue]Integer[/color] = ColorTranslator.ToWin32(Color.FromArgb(Convert.ToInt32(c.R), Convert.ToInt32(c.G), Convert.ToInt32(c.B)))
Win32.SetToolColors(tip.Handle, ToolTipStyle.TTM_SETTIPBKCOLOR, Col, 0)
[Color=Blue]End[/color] [Color=Blue]Sub
[/color] [Color=Blue]Private[/color] [Color=Blue]Sub[/color] SetToolTipForeColor([Color=Blue]ByVal[/color] tip [Color=Blue]As[/color] NativeWindow, [Color=Blue]ByVal[/color] c [Color=Blue]As[/color] Color)
[Color=Green]'///[/color] [Color=Green]set[/color] [Color=Green]the[/color] [Color=Green]back[/color] [Color=Green]color[/color] [Color=Green]of[/color] [Color=Green]the[/color] [Color=Green]tooltip
[/color] [Color=Blue]Dim[/color] Col [Color=Blue]As[/color] [Color=Blue]Integer[/color] = ColorTranslator.ToWin32(Color.FromArgb(Convert.ToInt32(c.R), Convert.ToInt32(c.G), Convert.ToInt32(c.B)))
Win32.SetToolColors(tip.Handle, ToolTipStyle.TTM_SETTIPTEXTCOLOR, Col, 0)
[Color=Blue]End Sub[/color]
[Color=blue]End Class[/color]
#[Color=blue]End Region[/color]
[Color=Green]'/// the[/color] [Color=Green]Win32[/color] [Color=Green]Api[/color] [Color=Green]calls[/color] [Color=Green]to[/color] [Color=Green]be[/color] [Color=Green]used[/color] [Color=Green]by[/color] [Color=Green]the[/color] [Color=Green]above[/color] [Color=Green]Class[/color] [Color=Green].[/color] [Color=Green][/color] [Color=Green].[/color] [Color=Green][/color] [Color=Green].[/color]
#[Color=blue]Region[/color] [Color=Gray]" Win32 Api Calls "[/color]
[Color=Blue]Public Class[/color] Win32
[Color=Blue]Public Declare Function[/color] SendMessage [Color=Blue]Lib[/color] "user32.dll" [Color=Blue]Alias[/color] "SendMessageA" ([Color=Blue]ByVal[/color] hwnd [Color=Blue]As[/color] IntPtr, [Color=Blue]ByVal[/color] wMsg [Color=Blue]As[/color] [Color=Blue]Integer[/color], [Color=Blue]ByVal[/color] wParam [Color=Blue]As[/color] [Color=Blue]Integer[/color], [Color=Blue]ByVal[/color] lParam [Color=Blue]As[/color] [Color=Blue]String[/color]) [Color=Blue]As[/color] [Color=Blue]Integer
[/color] [Color=Blue]Public Declare Function[/color] SetToolColors [Color=Blue]Lib[/color] "user32.dll" [Color=Blue]Alias[/color] "SendMessageA" ([Color=Blue]ByVal[/color] hwnd [Color=Blue]As[/color] IntPtr, [Color=Blue]ByVal[/color] wMsg [Color=Blue]As[/color] [Color=Blue]Integer[/color], [Color=Blue]ByVal[/color] wParam [Color=Blue]As[/color] [Color=Blue]Integer[/color], [Color=Blue]ByVal[/color] lParam [Color=Blue]As[/color] [Color=Blue]Integer[/color]) [Color=Blue]As[/color] [Color=Blue]Integer
[/color] [Color=Blue]Public Declare Function[/color] GetWindowLong [Color=Blue]Lib[/color] "user32" [Color=Blue]Alias[/color] "GetWindowLongA" ([Color=Blue]ByVal[/color] hwnd [Color=Blue]As[/color] IntPtr, [Color=Blue]ByVal[/color] nIndex [Color=Blue]As[/color] [Color=Blue]Integer[/color]) [Color=Blue]As[/color] [Color=Blue]Integer
[/color] [Color=Blue]Public Declare Function[/color] SetWindowLong [Color=Blue]Lib[/color] "user32" [Color=Blue]Alias[/color] "SetWindowLongA" ([Color=Blue]ByVal[/color] hwnd [Color=Blue]As[/color] IntPtr, [Color=Blue]ByVal[/color] nIndex [Color=Blue]As[/color] [Color=Blue]Integer[/color], [Color=Blue]ByVal[/color] dwNewLong [Color=Blue]As[/color] [Color=Blue]Integer[/color]) [Color=Blue]As[/color] [Color=Blue]Integer
[/color] [Color=Blue]Public[/color] [Color=Blue]Const[/color] GWL_STYLE [Color=Blue]As[/color] [Color=Blue]Integer[/color] = (-16)
[Color=blue]End Class[/color]
#[Color=Blue]End Region[/color]