vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB & Windows API
Menü beenden lassen 
Autor: Net^Devil
Datum: 05.01.05 01:01

Hi.

Ich habe ein Programm geschrieben, das sich per Button in die Tray verschiebt und von dort aus per Rechstklick mit einem PopUp menü gesteuert werden kann ...

Nun ist das so, das das Menü nur wieder weggeht, wenn man irgendwo hin klickt ... Rechtsklick auf Desktop oder Linksklick irgend wo hin bringen nichts ...

Anbei der Code


Modul zum in die Tray verschieben:

Option Explicit
 
Public Declare Function Shell_NotifyIcon Lib "shell32" Alias _
  "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As _
  Boolean
 
Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4
Public Const WM_MOUSEMOVE = &H200
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_LBUTTONUP = &H202
Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_RBUTTONUP = &H205
Public Const WM_RBUTTONDBLCLK = &H206
Public Const HWND_TOPMOST = -1
 
Public nid As NOTIFYICONDATA
 
Public 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
Der button der das auslöst
Private Sub Command2_Click()
isintray = True
WindowState = vbMinimized
und hier der rest de codes einfach und kommentiert

'Dies lässt das Menü "hochpoppen" wenn die Form in der Trayleiste versteck ist
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y _
  As Single)
Dim Sys As Long
Sys = x / Screen.TwipsPerPixelX
Select Case Sys
Case WM_RBUTTONUP
Me.PopupMenu mnuSystray
End Select
End Sub
 
'Dies läßt die Form in die Trayleiste verschwinden/minimieren
Private Sub Form_Resize()
If WindowState = vbMinimized Then
Me.Hide
Me.Refresh
With nid
.cbSize = Len(nid)
.hwnd = Me.hwnd
.uId = vbNull
.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
.uCallBackMessage = WM_MOUSEMOVE
.hIcon = Me.Icon
.szTip = Me.Caption & vbNullChar
End With
Shell_NotifyIcon NIM_ADD, nid
Else
Shell_NotifyIcon NIM_DELETE, nid
End If
End Sub
 
'Dies soll das TrayIcon verschwinden lassen wenn das Pro beendet wird
Private Sub Form_Unload(Cancel As Integer)
If isintray = True Then
    WindowState = vbNormal
    Me.Show
    End
   Else
End
End If
 
End Sub
'Hiermit wird das Programm aus dem Menü aus der Trayleiste beendet
Private Sub mnuexit_Click()
Unload Me
End Sub
'Dies holt die Form zurück
Private Sub mnuRestore_Click()
WindowState = vbNormal
Me.Show
isintray = False
End Sub
'Hiermit wird die Form minimiert
Private Sub Command2_Click()
isintray = True
WindowState = vbMinimized
End Sub
Es soll nur so sein, das das menü verschwindet wenn woanders hingeklickt wird ...
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Menü beenden lassen1.434Net^Devil05.01.05 01:01
Re: Menü beenden lassen850ModeratorMartoeng05.01.05 14:55
Re: Menü beenden lassen833Net^Devil06.01.05 03:20
Re: Menü beenden lassen830zillertaler06.01.05 08:36
Re: Menü beenden lassen817Net^Devil06.01.05 13:25
Re: Menü beenden lassen807ModeratorMartoeng07.01.05 18:36
Men beenden lassen847RonnyImBalkon24.01.05 13:05

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-2024 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