vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Windows API
SysTray-Icon: Problem mit Kontextmenü 
Autor: computersuchtl
Datum: 05.08.04 19:04

Hi zusammen,
der Betreff sagt eigentlich schon alles: ich will mein Programm (d. h. ein Icon) im SysTray anzeigen lassen. Das funktioniert soweit auch ganz gut. Probleme macht mir dann das Popup-Menü. Um diese Geschichte besser erklären zu können: hier der Code (abgeänderte Form von dem Code, den ich hier auf vbarchiv.net gefunden habe)

'API-Deklarationen
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

Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2

Private Const NIF_MESSAGE = &H1
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4

Private Const WM_MOUSEMOVE = &H200

Private Const WM_RBUTTONUP = &H205 ' Rechte Maustaste loslassen

Private Declare Function Shell_NotifyIcon Lib _
"shell32" Alias "Shell_NotifyIconA" ( _
ByVal dwMessage As Long, _
pnid As NOTIFYICONDATA) As Boolean

Private NotifyData As NOTIFYICONDATA

' Beim Laden wird das Icon im SysTray angezeigt... das geht
Private Sub Form_Load()
With NotifyData
.cbSize = Len(NotifyData)
.hIcon = Me.Icon
.hWnd = Me.hWnd
.szTip = "Test" & vbNullChar
.uCallBackMessage = WM_MOUSEMOVE
.uFlags = NIF_MESSAGE Or NIF_ICON Or NIF_TIP
.uId = vbNull
End With
Shell_NotifyIcon NIM_ADD, nid
End Sub

'Das funktioniert auch noch; das in der Form angelegte Menü "puMenu" wird als Kontext-Menü angezeigt, wenn man mit der rechten Maustaste auf das Icon im SysTray klickt!
Private Sub Form_MouseMove(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
Dim lMsg As Long
lMsg = X / Screen.TwipsPerPixelX
Select Case lMsg
Case WM_RBUTTONUP
PopupMenu puMenu
Case Else
exit sub
End Select
End Sub

' Das Icon beim Beenden wieder entfernen
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Shell_NotifyIcon NIM_DELETE, NotifyData
End Sub

' mnuTest entspricht einem Menüpunkt im Menü "puMenu"
Private Sub mnuTest_Click()
Shell_NotifyIcon NIM_DELETE, NotifyData
End
End Sub

Normalerweiße ist es ja so: wenn ich das Kontextmenü eines Programms im SysTray öffne, allerdings keinen Menüpunkt auswählen will, dann klicke ich mit der Maus irgendwo hin und: passt scho, Popup-Menü ist weg! Bei mir bleibt das Menü geöffnet, ich kann hinklicken wo ich will! An was liegt das bzw. wie kann ich dieses Problem beheben? Wahrscheinlich denke ich wieder mal zu kompliziert.
Danke für Eure Hilfe!
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
SysTray-Icon: Problem mit Kontextmenü1.361computersuchtl05.08.04 19:04
Re: SysTray-Icon: Problem mit Kontextmenü970ModeratorMartoeng05.08.04 23:42
Re: SysTray-Icon: Problem mit Kontextmenü878computersuchtl06.08.04 15:57
Re: SysTray-Icon: Problem mit Kontextmenü890ModeratorMartoeng06.08.04 16:45
Re: SysTray-Icon: Problem mit Kontextmenü - Neue Erke...863computersuchtl06.08.04 20:20
Re: SysTray-Icon: Problem mit Kontextmenü - Neue Erke...961ModeratorMartoeng06.08.04 20:58
Re: SysTray-Icon: Problem mit Kontextmenü - Neue Erke...903computersuchtl06.08.04 22:33
Re: SysTray-Icon: Problem mit Kontextmenü - Neue Erke...932ModeratorMartoeng06.08.04 22:44
Re: SysTray-Icon: Problem mit Kontextmenü - Neue Erke...840computersuchtl07.08.04 13:02
Re: SysTray-Icon: Problem mit Kontextmenü - Neue Erke...855TobiasT11.08.04 10:21
Re: SysTray-Icon: Problem mit Kontextmenü - Neue Erke...805computersuchtl11.08.04 10:29
Re: SysTray-Icon: Problem mit Kontextmenü - Neue Erke...863TobiasT11.08.04 11:47
Re: SysTray-Icon: Problem mit Kontextmenü - Neue Erke...945computersuchtl11.08.04 11:57

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel