Me.PopupMenu im TrayIcon bei 120DPI !

14/08/2009 - 16:14 von JanM | Report spam
Hallo Wer kann mir helfen ?

Mein TrayIcon PopupMenu funktioniert nicht bei 120 dpi Bildschirm Auflösung !
, mit 96 dpi funktioniert es !

VB6

Private Sub TrayIcon1_MouseMove(Button As Integer, Shift As Integer, x As
Single, Y As Single)

Dim MSG As Long

MSG = (x And &HFF) * &H100
Select Case MSG

Case &H4B00 'rechte Maustaste losgelassen
'SetForegroundWindow Me.hWnd
Me.PopupMenu Me.PopM
Case &H5A00 'Doppelklick rechts

End Select

Danke JanM
 

Lesen sie die antworten

#1 Thorsten Albers
14/08/2009 - 18:12 | Warnen spam
JanM schrieb im Beitrag
...
Mein TrayIcon PopupMenu funktioniert nicht bei 120 dpi Bildschirm


Auflösung !
, mit 96 dpi funktioniert es !

VB6

Private Sub TrayIcon1_MouseMove(Button As Integer, Shift As Integer, x As

Single, Y As Single)

Dim MSG As Long

MSG = (x And &HFF) * &H100
Select Case MSG

Case &H4B00 'rechte Maustaste losgelassen
'SetForegroundWindow Me.hWnd
Me.PopupMenu Me.PopM
Case &H5A00 'Doppelklick rechts

End Select



Mit Verlaub - das ist unsinniger Code:

Ob eine Maus-Taste gedrückt ist oder nicht, wird Dir im Parameter 'Button'
mitgeteilt. 'X' dagegen enthàlt die horizontale Mausposition beim Auftreten
des Ereignisses (nebenbei: 'X' hat den Datentyp 'Single', also einen
Fließkomma-Datentyp; 'And' arbeitet mit Integer-Datentypen ('Ganzzahlen')).
Um den Inhalt von 'Button' zu prüfen solltest Du dann auch nicht erst noch
irgendwelche Manipulationen des Wertes vornehmen, sondern die dafür in VB
vorgesehene Systematik verwenden, z.B.:

Select Case Button
Case vbLeftButton
Case vbRightButton
Case vbMiddleButton
Case vbLeftButton And vbRightButton
...
End Select

Abgesehen davon teilt Dir das 'MouseMove'-Ereignis >>nicht<< mit, ob eine
Maustaste gedrückt oder losgelassen wurde, sondern daß und unter welchen
Bedingungen der Mauszeiger bewegt wurde. Für das Drücken/Loslassen
benötigst Du die Ereignisse 'MouseDown' und 'MouseUp'.

Thorsten Albers

albers (a) uni-freiburg.de

Ähnliche fragen