Ich habe folgendes Problem in Visual Basic 6:
Ich möchte neben der Uhr rechts unten das Symbol meiner Anwendung einfügen.
Dafür benutze ich bis jetzt folgenden Code:
Private Declare Function Shell_NotifyIcon Lib „shell32.dll“ Alias „Shell_NotifyIconA“ (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
Private Type NOTIFYICONDATA
cbSize As Long
hwnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip As String * 64
End Type
’ Values for uFlags
Private Const NIF_ICON = &H2
Private Const NIF_MESSAGE = &H1
Private Const NIF_TIP = &H4
’ Values for dwMessage
Private Const NIM_MODIFY = &H1
Private Const NIM_ADD = &H0
Private Const NIM_DELETE = &H2
’ Value for uCallbackMessage
Private Const WM_LBUTTONDOWN = &H201
Sub TrayLoad(Form As Form, ByVal Title As String)
Dim nid As NOTIFYICONDATA
With nid
.cbSize = Len(nid)
.hwnd = Form.hwnd
.szTip = Title
.uFlags = NIF_ICON Or NIF_MESSAGE Or NIF_TIP
.uCallbackMessage = WM_LBUTTONDOWN
.hIcon = Form.Icon
End With
Shell_NotifyIcon NIM_ADD, nid
End Sub
Das Symbol wird auch angezeigt. Das Problem ist aber, wenn man den Mauszeiger eine
bestimmte Zeit lang über dem Symbol hält, wird ein Text in einem gelben Fenster
eingeblendet. Dieser Text ist jedoch immer 64 Zeichen lang, auch wenn der anzu-
zeigende Text viel kürzer ist (z.B. „Test“). Ein Trim-Befehl bewirkt auch nichts,
da der dazugehörige „Eintrag“ im Type NOTIFYICONDATA (szTip) as String mit 64
Buchstaben deklariert ist. Wenn ich szTip as String mit variabler Länge deklariere,
wird das Symbol jedoch nicht angezeigt.
Frage:
Wie bekomme ich es hin, das der Text, der eingeblendet werden soll, nur so lang
ist wie er ist und nicht durch Leerzeichen auf 64 Stellen verlängert wird ?
Für schnelle Hilfe wäre ich dankbar,
Markus Keppeler