Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: VB4/32,VB5,VB6
Expertise: Intermediate
Aug 28, 1999

Add pizazz to your apps with an animated cursor

Who said you can't use an animated cursor with Visual Basic? Actually, it's so simple! You just have to load your animated cursor through LoadCursorFromFile API function, then you get the current cursor using GetCursor, and finally you can set your cursor using SetSystemCursor. This is all the code that you need:


Private Declare Function LoadCursorFromFile Lib "user32" Alias _
    "LoadCursorFromFileA" (ByVal lpFileName As String) As Long
Private Declare Function GetCursor Lib "user32" () As Long
Private Declare Function CopyIcon Lib "user32" (ByVal hcur As Long) As Long
Private Declare Function SetSystemCursor Lib "user32" (ByVal hcur As Long, _
    ByVal id As Long) As Long
Private Const OCR_NORMAL = 32512

Sub ALengthyTask()
    Dim hNewCursor As Long
    Dim hSavCursor As Long

    ' create a copy of the current cursor - this is necessary
    ' for the tip to work correctly under NT
    hSavCursor = CopyIcon(GetCursor())

    ' load a new cursor
    hNewCursor = LoadCursorFromFile("h:\winnt4\cursors\appstart.ani")
    ' make it the current cursor
    SetSystemCursor hNewCursor, OCR_NORMAL

    ' here goes your lengthy code
    ' ...
    ' (in this example we'll use a msgbox
    MsgBox "Press OK to continue"

    ' restore old cursor
    SetSystemCursor hSavCursor, OCR_NORMAL
End Sub

UPDATE: Thanks to Kraehenbuehl Markus, who has pointed out that under Windows NT you must create a copy of the current cursor, using the CopyIcon API function. The above code has been updated following his suggestion.
Marco Bellinaso
 
Comment and Contribute

 

 

 

 

 


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

 

 

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