VB5-VB6
Von: Thorsten Dörfler
Der Taskleisten-Statusbereich (umgs. "Tray" oder auch "der Bereich neben der Uhr" genannt) ist ein beliebter Aufenthaltsort für Anwendungen, die täglich gebraucht werden, aber nur manchmal bedient werden müssen. Eine zusätzliche Schaltfläche in der Taskleiste, wäre da nur störend.
Mit der Shell_NotifyIcon API Funktion kann man seinem Programm einen Platz in diesem Taskleisten-Statusbereich reservieren. Der Einfachheit halber wurden alle notwendigen Aufrufe in einem UserControl (TaskTray.ctl) gekapselt, das Sie am Ende dieses Artikels herunterladen können. Um das Tray Control nutzen zu können, muss die Datei "TrayIcon.ctl" dem Projekt hinzugefügt werden und auf einem Formular platziert werden. Dabei entstehen keinerlei Abhängigkeiten, da das Control im Source eingebunden und mitkompiliert wird.
Nachfolgend einige Anwendungsbeispiele:
TrayIcon anzeigen:
Private Sub Form_Load() Set TrayIcon1.Icon = Me.Icon With TrayIcon1 .InfoTip = "Ein informativer ToolTip" .ShowIcon End With End Sub
Kontextmenü anzeigen:
"mnuTray" ist dabei ein mit dem Menüeditor erstelltes Standard- Menü:
Private Sub TrayIcon1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer) If Button = vbRightButton Then TrayIcon1.PopupMenu mnuTray, vbPopupMenuRightButton, mnuTrays(0) End If End Sub
Anwendung ausblenden, wenn minimiert:
Private Sub Form_Resize() If Me.WindowState = vbMinimized Then TrayIcon1.ShowIcon Me.Hide End If End Sub
Anwendung anzeigen:
Private Sub TrayIcon1_DblClick(ByVal Button As Integer, ByVal Shift As Integer) If Button = vbLeftButton Then Me.WindowState = vbNormal Me.Show End If End Sub
Beim Beenden der Anwendung, wird das Tray-Icon automatisch entfernt.
Download TrayIcon.ctl (UserControl im Source inkl. Beispielprojekt) [15 KB]