10.1 Wie erstelle ich ein Symbol im Taskleisten-Statusbereich (Tray)?
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]