ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 09.01.2000

Diese Seite wurde zuletzt aktualisiert am 09.01.2000
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Zurück...


Anzeige

Von Jan Krumsiek mailto:jkrumsiek@aboutvb.de/(-hg) mailto:hg_showhidecursor@aboutvb.de

Schreiben Sie vielleicht gerade einen Bildschirmschoner? Dann werden Sie den Mauszeiger verstecken müssen, solange Ihr Bildschirmschoner aktiv ist. Und es gibt sicher auch noch einige andere Anlässe, den Mauszeiger unsichtbar und anschließend wieder sichtbar zu machen.

An sich wären einfache Aufrufe der API-Funktion MSDN-Library - API ShowCursorShowCursor naheliegend, um dies zu erreichen. Übergeben Sie ihr als Parameter der Wert 0, wird der Mauszeiger (in der API-Sprache "Cursor" genannt) verborgen. Übergeben Sie einen beliebigen Wert ungleich 0, wird er wieder sichtbar gemacht. So ganz stimmt dies allerdings nicht. Denn hinter der Funktion ShowCursor steckt ein Zähler, der im ersteren Fall herunter gezählt wird, im zweiten Fall herauf gezählt wird. Ist der Zähler größer oder gleich 0, ist der Mauszeiger sichtbar, ist der Zähler kleiner als 0, ist er unsichtbar. Den jeweiligen Wert des Zählers erhalten Sie als Rückgabewert der Funktion.

Dabei kann es leicht passieren, dass Sie versehentlich mit dieser Zählerei bei mehrfachen Aufrufen der Funktion mit gleicher Zählrichtung durcheinanderkommen und der Mauszeiger unter Umständen einfach nicht wieder erscheinen, oder einfach nicht unsichtbar werden will. Bei den beiden folgenden Funktionen HideCursor und ShowCursor können Sie über den optionalen Parameter Forced angeben, ob die API-Funktion so lange ausgeführt werden soll, bis der Mauszeiger entweder verschwunden oder wieder aufgetaucht ist. Um den Namenskonflikt zwischen der eigentlichen API-Funktion ShowCursor und unserer Hilfsfunktion ShowCursor aufzulösen, haben wir die API-Funktion in der Deklaration mittels der Alias-Anweisung in ShwoCursorAPI umbenannt.

Private Declare Function ShowCursorAPI Lib "user32" _
 Alias "ShowCursor" (ByVal bShow As Long) As Long

Public Function HideCursor(Optional ByVal Forced As Boolean = True) _
 As Long
  If Forced Then
    Do Until ShowCursorAPI(0) < 0
    Loop
  Else
    HideCursor = ShowCursorAPI (0)
  End If
End Function

Public Function ShowCursor(Optional ByVal Forced As Boolean = True) _
 As Long
  If Forced Then
    Do Until ShowCursorAPI(True) >= 0
    Loop
  Else
    ShowCursor = ShowCursorAPI (True)
  End If
End Function

Da bei der mit der Angabe von Forced erzwungenen Anzeige der Wert des Zählers relativ uninteressant ist, geben die beiden Funktionen nur beim einfachen Aufruf als Funktionsergebnis zurück. Wenn Sie der Wert des Zählers interessiert, ohne dass Sie die Anzeige des Mauszeigers ändern möchten, können Sie ihn über die folgende Funktion CursorShowCount in Erfahrung bringen. Diese macht eigentlich nichts weiter, als den Wert einmal herauf und wieder einmal herunterzuzählen und den Stand zurückzugeben.

Public Function CursorShowCount() As Long
  Dim nShow As Long
  
  nShow = ShowCursorAPI(True)
  CursorShowCount = ShowCursorAPI(0)
End Function

Analog dazu gibt Ihnen die folgende Variante den Anzeigestatus des Mauszeigers als einfachen Wahr/Falsch-Wert zurück:

Public Function CursorShowState() As Boolean
  Dim nShow As Long
  
  nShow = ShowCursorAPI(True) - 1
  CursorShowState = CBool(nShow >= 0)
  ShowCursorAPI 0
End Function

Da sich die Anzeige und das Verbergen des Mauszeigers nur auf die aktuelle Anwendung auswirken, ist es nicht weiter tragisch, wenn Ihre kompilierte Anwendung versehentlich beendet werden sollte, ohne dass zuletzt wieder auf Anzeigen geschaltet worden wäre. Bei Testläufen in der Visual Basic-Entwicklungsumgebung sollten Sie jedoch für eine abschließende Anzeige sorgen (am besten im Form_Unload-Ereignis des zuletzt geschlossenen Forms) - der Mauszeiger bliebe anderenfalls in der gesamten Entwicklungsumgebung unsichtbar.


Modul modHideShowCursor (modHideShowCursor.bas - ca. 1 KB)






Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche



Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer