Initial
This commit is contained in:
66
EDOKA/Backup/Utils/clsBalloon.vb
Normal file
66
EDOKA/Backup/Utils/clsBalloon.vb
Normal file
@@ -0,0 +1,66 @@
|
||||
#Region " Custom ToolTip Builder "
|
||||
Public Class clsBalloon
|
||||
Private Enum ToolTipIcon
|
||||
TTI_INFO = 1
|
||||
TTI_WARNING = 2
|
||||
TTI_ERROR = 3
|
||||
End Enum
|
||||
|
||||
Private Enum ToolTipStyle
|
||||
TTS_BALLOON = 64
|
||||
WS_BORDER = 8388608
|
||||
TTS_NOPREFIX = 2
|
||||
TTM_SETTITLE = 1056
|
||||
TTM_UPDATETIPTEXT = 1036
|
||||
TTM_SETTIPBKCOLOR = 1043
|
||||
TTM_SETTIPTEXTCOLOR = 1044
|
||||
End Enum
|
||||
|
||||
Public Sub CustomBalloon(ByVal tip As ToolTip, Optional ByVal style As Integer = 0)
|
||||
'/// the first 5 lines are from Divil's Balloon tip example
|
||||
'/// i've marked them with a * at the end.
|
||||
'/// start of *
|
||||
Dim hwnd As NativeWindow = DirectCast(GetType(ToolTip).GetField("window", Reflection.BindingFlags.NonPublic Or Reflection.BindingFlags.Instance).GetValue(tip), NativeWindow) '/// *
|
||||
style = Win32.GetWindowLong(hwnd.Handle, Win32.GWL_STYLE) '/// *
|
||||
style = style Xor ToolTipStyle.WS_BORDER '/// *
|
||||
style = style Or ToolTipStyle.TTS_BALLOON Or ToolTipStyle.TTS_NOPREFIX '/// *
|
||||
Win32.SetWindowLong(hwnd.Handle, Win32.GWL_STYLE, style) '/// *
|
||||
'/// end of *
|
||||
'/// the remaining code , for colors / caption / icon is all by me ( Dynamic Sysop )
|
||||
'/// no to set the caption / icon & colors up...
|
||||
SetToolTipCaption(hwnd, "HOT-Keys")
|
||||
SetToolTipBackColor(hwnd, Color.LemonChiffon)
|
||||
SetToolTipForeColor(hwnd, Color.Black)
|
||||
End Sub
|
||||
|
||||
Private Sub SetToolTipCaption(ByVal tip As NativeWindow, ByVal Caption As String)
|
||||
Win32.SendMessage(tip.Handle, ToolTipStyle.TTM_SETTITLE, ToolTipIcon.TTI_INFO, Caption)
|
||||
End Sub
|
||||
|
||||
Private Sub SetToolTipBackColor(ByVal tip As NativeWindow, ByVal c As Color)
|
||||
'/// set the back color of the tooltip
|
||||
Dim Col As Integer = 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)
|
||||
End Sub
|
||||
|
||||
Private Sub SetToolTipForeColor(ByVal tip As NativeWindow, ByVal c As Color)
|
||||
'/// set the back color of the tooltip
|
||||
Dim Col As Integer = 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)
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
#End Region
|
||||
'/// the Win32 Api calls to be used by the above Class...
|
||||
#Region " Win32 Api Calls "
|
||||
Public Class Win32
|
||||
|
||||
Public Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As String) As Integer
|
||||
Public Declare Function SetToolColors Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
|
||||
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As IntPtr, ByVal nIndex As Integer) As Integer
|
||||
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As IntPtr, ByVal nIndex As Integer, ByVal dwNewLong As Integer) As Integer
|
||||
Public Const GWL_STYLE As Integer = (-16)
|
||||
|
||||
End Class
|
||||
#End Region
|
||||
|
||||
Reference in New Issue
Block a user