TKSoft-Online

Hand-Cursor in Formularen anzeigen PDF Drucken E-Mail
( 1 Vote )
MS-Access Bsp. DB's - Bsp. Downloads Formulare
  
Montag, den 31. März 2008 um 04:00 Uhr

 

Problemstellung:

Wenn man in Access-Formularen den Mouse Cursor verändern will sind einem
ganz schnell Grenzen gesetzt.
Entweder man setzt ein Stundenglas (Eieruhr) mittels dem DoCmd-Objektes:

DoCmd.Hourglass True

 

oder man greift auf das Screenobjekt zurück. Aber auch hier ist nicht viel möglich. (mehr s. OH)

Screen.MousePointer = 11

 

Jetzt möchte ich aber z.B. eine Hand als Cursor erscheinen lassen wenn die Maus über
ein Button fährt oder die Hand soll erscheinen wenn ich über ein Bild fahre um anzuzeigen
das sich ein Link dahinter befindet.

Button herkömmlich:

 

Button mit Hand-Cursor:

Wie geht das aber? Lösung folgt.

Voraussetzungen:

Das Bsp ist unter A00-A07 lauffähig.

Funktionsweise:

Die Lösung beruht auf API-Funktionen. Das funktioniert auch unter Vista.


Private Const IDC_HAND As Long = 32649
Private Const IDC_ARROW As Long = 32512

Private Const GCL_HCURSOR = -12

Private Declare Function LoadCursor _
    Lib "user32" _
    Alias "LoadCursorA" ( _
    ByVal hInstance As Long, _
    ByVal lpCursorName As LongAs Long

Private Declare Function SetClassLong _
    Lib "user32" _
    Alias "SetClassLongA" ( _
    ByVal hwnd As Long, _
    ByVal nIndex As Long, _
    ByVal dwNewLong As LongAs Long

Dim blnIsHand As Boolean

 
Dann sind noch 2 Sub's erforderlich.
Die erste zum setzten des Cursors (MouseMove-Ereignis des Controls)

Sub SetHandCursor()
    Dim hHandCursor As Long
    Dim R As Long

    On Error Resume Next
    If blnIsHand Then Exit Sub

    hHandCursor = LoadCursor(ByVal 0&, IDC_HAND)
    R = SetClassLong(Me.hwnd, GCL_HCURSOR, hHandCursor)
    DoEvents

    blnIsHand = True

End Sub

 
Die zweite zum setzten des normalen Cursors (MouseMove-Ereignis des Detailbereiches)

Sub RemoveHandCursor()
    Dim R As Long
    Dim hArrowCursor As Long

    On Error Resume Next

    If Not blnIsHand Then Exit Sub

    hArrowCursor = LoadCursor(ByVal 0&, IDC_ARROW)
    R = SetClassLong(Me.hwnd, GCL_HCURSOR, _
        hArrowCursor)
    DoEvents

    blnIsHand = False

End Sub

 
Alles weitere in der Bsp-DB. 
 
 

Hand-Cursor in Formularen anzeigen

Hand-Cursor in Formularen anzeigen
für A00-A07
Funktioniert auch unter Windows Vista

Die Zip-Datei enthält eine Version ab A00



Erstellt am
Dateigröße
Downloads
28.03.2008
50.6 KB
539


Downloads in dieser Kategorie

MS-Access Formulare

MS-Access Formulare

 Seite: 1

 Seite: 2


DatumKlicks
Total4119
Do. 241
Mi. 234
Di. 226
Mo. 219
So. 209
Fr. 183
Do. 172
Aktualisiert ( Mittwoch, den 19. Oktober 2011 um 12:45 Uhr )
 

Kommentar schreiben


Sicherheitscode
Aktualisieren

Login

Latest Comments

Latest Forum Posts

Mehr »

Download Statistik

41 Kategorien
187 Dateien
173483 Downloads