Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Visual Basic
Expertise: Beginner
Jun 1, 1999



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Track MousePointer Changes

If you develop large apps, this routine can help you keep a count of calls to change the mousepointer. The routine, called MouseStack, keeps a stack of those calls and resets the pointer to the default when the stacks are equal or when a reset is forced.

Often, one routine sets the MousePointer to hourglass, then calls another routine that also sets it to hourglass, then back to default. However, you might not want it reset just yet. MouseStack() changes the pointer back only if the counts of calls to hourglass and default are equal, and/or the user calls MouseStack() with vbResetMouse to set the pointer to the default:

Public Enum MousePointers
	vbDefault = 0
	'set pointer to default
	vbHourglass = 11
	'set pointer to hourglass
	vbResetMouse = 99
	'reset static variables, set pointer 
	'to default
End Enum

Public Sub MouseStack(nMouseSetting As _
	Static nHourglass As Integer
	Static nDefault As Integer

	' Based on the setting entered in, 
	'increment the proper variable
	Select Case nMouseSetting
		Case vbHourglass		' 11
			nHourglass = nHourglass + 1
		Case vbDefault		' 0
			nDefault = nDefault + 1
		Case Else
	End Select

	' If the variables are now equal, or 
	' a reset was called, reset the 
	' variables, and set the mouse 
	' pointer to the default
	If (nHourglass = nDefault) Or _
		(nMouseSetting _
		= vbResetMouse) Then
		nHourglass = 0
		nDefault = 0
		Screen.MousePointer = vbDefault
		Exit Sub
	End If

	' If the difference is > 1, the 
	' pointer is already set to where it 
	' should be. Leave without setting 
	' pointer.
	If (Abs(nHourglass - nDefault) > _
		1) Then Exit Sub

	' If one is ahead, set the 
	' mousepointer to it
	If (nHourglass > nDefault) Then
		Screen.MousePointer = vbHourglass
		Screen.MousePointer = vbDefault
	End If
End Sub
T.J. (Tom)
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date