|
Tipp 0098
|
Animierten Cursor verwenden
|
|
|
Autor/Einsender: Datum: |
|
Detlev Schubert 14.07.2001 |
|
Entwicklungsumgebung: |
|
VB 5 |
|
|
Leider wird oft behauptet, dass es ohne OCX nicht möglich sei, einen animierten Cursor vom Typ *.ani in VB darzustellen. Das dies sehr wohl ohne Zusatz-Steuerelement geht, mit einem tiefen Griff in die Trickkiste und mit Hilfe einiger API-Funktionen über ein
Subclassing, zeigt dieser Tipp.
|
Besonders wichtig ist es, dass der Default-Cursor vor dem Subclassing Aufruf gesichert wird und auch nach dem Verlassen wiederhergestellt wird, sonst könnte es zu sehr unerwünschten "Nebeneffekten" kommen.
|
|
|
Im Tipp wird Subclassing verwendet. Das Programm sollte nicht mit
dem Beenden-Button
der Entwicklungsumgebung (IDE) beendet werden, da dies nahezu immer zum Absturz der IDE führt.
|
Alle nicht gespeicherten Daten gehen damit verloren!!!
|
|
|
Option Explicit
Private Declare Function SetClassLong Lib "User32" Alias _
"SetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Declare Function LoadCursorFromFile Lib "User32" Alias _
"LoadCursorFromFileA" (ByVal lpFileName As String) As Long
Private Declare Function DestroyCursor Lib "User32" (ByVal _
hCursor As Long) As Long
Private Declare Function GlobalLock Lib "Kernel32" (ByVal _
hMem As Long) As Long
Private Declare Function GlobalUnlock Lib "Kernel32" (ByVal _
hMem As Long) As Long
Const GCW_HCURSOR = -12
Dim hCursor As Long
Private Sub Form_Load()
Combo1.AddItem "(kein Cursor)"
Combo1.AddItem "Appstart.ani"
Combo1.AddItem "Globe.ani"
Combo1.AddItem "Hourglas.ani"
Combo1.ListIndex = 0
End Sub
Private Sub Combo1_Click()
Dim D As String
D$ = Combo1.List(Combo1.ListIndex)
MakeDefaultCursor
If D$ <> "(kein Cursor)" Then hCursor = _
LoadCursorFromFile(App.Path & "\" & D$)
Me.MousePointer = vbCustom
SetClassLong Me.hwnd, GCW_HCURSOR, hCursor
End Sub
Private Sub Form_Unload(Cancel As Integer)
MakeDefaultCursor
End Sub
Public Sub MakeDefaultCursor()
Me.MousePointer = vbDefault
GlobalUnlock hCursor
DestroyCursor hCursor
End Sub
|
|
|
|
|
Windows-Version |
95 |
|
|
98/SE |
|
|
ME |
|
|
NT |
|
|
2000 |
|
|
XP |
|
|
Vista |
|
|
Win
7 |
|
|
|
VB-Version |
VBA 5 |
|
|
VBA 6 |
|
|
VB 4/16 |
|
|
VB 4/32 |
|
|
VB 5 |
|
|
VB 6 |
|
|
|
|
Download (5,8
kB)
|
Downloads bisher: [ 1882 ]
|
|
|