CTooltip is the core class in the hTooltip library, and it is used to create the tooltip windows for your controls. If you need a tooltip, create the instance of this class, set the properties of the tooltip (such as its text, color, etc.) and attach it to the required control.
For instance, if you need a balloon tooltip for a command button named Command1, the code in your form will looks like the following:
Private objTT As CTooltip Private Sub Form_Load() Set objTT = New CTooltip objTT.Text = "My first balloon tooltip" objTT.Style = httStyleBalloon objTT.CreateForVBCtrl Command1 End Sub
The result is on the picture below:
Displaying a tooltip on demand
In some cases you need to display a tooltip from your code at the moment when you need it but not when the user pauses the mouse inside the control and the tooltip window appears after a time pause. For example, you display the message to the user when you check the password when the user hits the Login button:
With hTooltip you can set any tooltip as a display-on-demand tooltip with the
DisplayOnDemand property and then show it later with the
The tooltip in the sample above is created with the following code:
Set objTT = New CTooltip With objTT .Title = "Did you forget your password?" .Text = "Please type your password again." & vbCrLf & _ "Be sure to use the correct uppercase and lowercase letters." .Icon = httIconError .Style = httStyleBalloon .DisplayOnDemand = True End With objTT.CreateForVBCtrl txtPasswd
If the entered password is incorrect, the tooltip's window is displayed at the specified point with the
objTT.Show txtPasswd.Width * 0.2, txtPasswd.Height * 0.7
The MouseEnter and MouseLeave events
Each hTooltip tooltip object raises the
MouseLeave events for the control or rectangular area it is attached to.
If you define a tooltip for a Label control:
Private WithEvents objTT As CTooltip Private Sub Form_Load() Set objTT = New CTooltip objTT.Text = "Tooltip text" objTT.CreateForVBCtrl Label1 End Sub
MouseLeave events will let you know when the mouse pointer entered and left the area occupied by the control say to display the corresponding messages in the status bar:
Private Sub objTT_MouseEnter() StatusBar1.SimpleText = "The mouse pointer entered the Label" End Sub Private Sub objTT_MouseLeave() StatusBar1.SimpleText = "The mouse pointer left the Label" End Sub
These events are especially useful and significantly simplify your code if you need such a functionality and your form is cluttered with many controls!
The DefaultTooltip object
In most cases all the tooltips in your app have the same view and functionality, and the
DeafultTooltip global object implemented by the hTooltip library can be used to specify the default properties for all the tooltips in your app. You do it in one place and the tooltips created later use these default settings automatically:
With DefaultTooltip .DelayTime = 50 .VisibleTime = 7000 .BackColor = vbBlue .ForeColor = vbWhite .Centered = True .Style = httStyleBalloon End With Set objTT1 = New CTooltip objTT1.Text = "Command1" objTT1.CreateForVBCtrl Command1 Set objTT2 = New CTooltip objTT2.Text = "Command2" objTT2.CreateForVBCtrl Command2
In the code above the tooltips for the command buttons Command1 and Command2 will have the blue background color, the balloon style, the same time parameters, etc.
Notice that the
DefaultTooltip object is accessible in your VB code without preliminary declaration as it is a global object.